silverlight – 如何在TargetNullValue属性中绑定本地化字符串?

前端之家收集整理的这篇文章主要介绍了silverlight – 如何在TargetNullValue属性中绑定本地化字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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}" />

猜你在找的Silverlight相关文章