我有一个Textblock,Text属性绑定到DateTime?类型数据,我想在DateTime时显示一些东西?数据为空.
< TextBlock Text="{Binding DueDate,TargetNullValue='wow,It's null'}"/>
但是,如果我想将Localizedstring绑定到TargetNullValue呢?
下面的代码不起作用:(怎么样?
< TextBlock Text="{Binding DueDate,TargetNullValue={Binding LocalStrings.bt_help_Title1,Source={StaticResource LocalizedResources}} }"/>
解决方法
我没有看到使用TargetNullValue做任何方法.作为解决方法,您可以尝试使用转换器:
public class NullValueConverter : IValueConverter { public object Convert(object value,Type targetType,object parameter,CultureInfo culture) { if (value != null) { return value; } var resourceName = (string)parameter; return AppResources.ResourceManager.GetString(resourceName); } public object ConvertBack(object value,CultureInfo culture) { throw new NotImplementedException(); } }
<phone:PhoneApplicationPage.Resources> <local:NullValueConverter x:Key="NullValueConverter" /> </phone:PhoneApplicationPage.Resources>
最后,使用它而不是TargetNullValue:
<TextBlock Text="{Binding DueDate,Converter={StaticResource NullValueConverter},ConverterParameter=bt_help_Title1}" />