我有一个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, Type targetType, object parameter, 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}" />