1

在我的 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...(因为它不在屏幕上,所以无法阅读更多内容)。

做了一些谷歌搜索/“stackoverflowing”,发现了一些带有 WP7 的 valueconverters 的东西,这让我有点困惑。

(并添加了 C# 标记,因为我有一种感觉,仅通过将正确的“属性”添加到标记/值到“属性”并不能解决这个问题,尽管我很感激它)

4

1 回答 1

1

我很确定您不能将绑定应用于 FallbackValue。一个非常简单的解决方法是检查您的“某事”属性中的空值。

private string _something;

public string Something
{
    get { return _something ?? AppResources.ApplicationTitle; }
    set
    {
        _something = value;
        OnPropertyChanged("Something");
    }
}
于 2013-10-18T02:59:01.570 回答