数据绑定 - Lozalized FallbackValue/TargetNullValue 等

本文关键字:TargetNullValue FallbackValue Lozalized 数据绑定 | 更新日期: 2023-09-27 18:35:48

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

我希望在以下情况下将来自 LocalizedResources 的 lozalized 字符串显示为按钮的内容:

  • 绑定返回的值为null

  • 无法解析绑定

如何实现这一点?

我试图做的是:

(省略TargetNullValue,因为这样做的方法可能是一样的)

(出于演示目的,我将资源设置为应用程序标题)

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

但我得到的是像System.Windows.Text.Data.Binding...这样的文本(无法阅读更多,因为它不在屏幕外)。

做了一些谷歌搜索/"堆栈溢出",并在WP7的值转换器中找到了一些东西,这让我有点困惑。

(并添加了 C# 标签,因为我有一种感觉,仅仅通过将正确的"属性"添加到"属性"的标签/值中是无法解决的,尽管我很感激)

数据绑定 - Lozalized FallbackValue/TargetNullValue 等

我很确定你不能对回退值应用绑定。一个非常简单的解决方法是在"某物"属性中检查空值。

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