数据绑定 - Lozalized FallbackValue / TargetNullValue等

时间:2013-10-18 02:06:51

标签: c# xaml data-binding windows-phone-8 .net-4.5

在我的Windows Phone 8 C#/ XAML .NET 4.5应用程序中我正在使用ViewModel的数据绑定,该工作正常。

我想要的是,在以下情况下,LocalizedResources中的lozalized字符串将显示为按钮的内容:

  • Binding返回的值为null

  • 无法解析绑定

如何实现这一目标?

我试图做的是:

(省略TargetNullValue,因为这样做的方式可能会相同)

(出于演示目的,我将资源设置为Applicationtitle)

<Button ... Content="{Binding Something, FallbackValue={Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}}" ... />

但我得到的是像System.Windows.Text.Data.Binding...这样的文字(由于它不在屏幕内,因此无法阅读。)

有些谷歌搜索/“堆栈溢出”并找到了WP7的值转换器,这让我有点困惑。

(并添加了C#标签,因为我感觉只是通过将标签/值添加到“属性”的正确“属性”来解决这个问题,尽管我很感激它)

1 个答案:

答案 0 :(得分:1)

我很确定你不能对FallbackValue应用绑定。一个非常简单的解决方法是在“Something”属性中检查null。

private string _something;

public string Something
{
    get { return _something ?? AppResources.ApplicationTitle; }
    set
    {
        _something = value;
        OnPropertyChanged("Something");
    }
}