2013-10-18 30 views
1

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

我想是从LocalizedResources一个lozalized字符串显示为一个按钮,在下列情况下内容:

  • 通过结合返回的值是null

  • 的绑定无法解决

这怎么能实现?

我一直试图做的是:

(略TargetNullValue,因为这样做很可能将是相同的方式)

(用于演示的目的,我设置了资源是Applicationtitle)

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

但我得到的是像System.Windows.Text.Data.Binding...文本(不能读更多,因为它的出屏)。

做了一些Google搜索/“stackoverflowing”,发现WP7的价值转换器,这让我有点困惑。

(并添加了C#标签,因为我有一种感觉,这不会仅仅通过向“属性”的标签/值添加正确的“属性”来解决,尽管我很感激它)

回答

1

我敢肯定,你不能将绑定应用于FallbackValue。一个非常简单的解决方法是在'Something'属性中检查null。

private string _something; 

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

我知道这是可能的,我已经看到了WP7的例子。我只是希望有人能够知道这个答案 - 我想做“我的方式”。感谢这个建议,但它是稳定的,如果没有人回答一些更符合我喜好的建议,我可能会回到它。 :) – mishan

+0

我以为我会使用PriorityBinding,这将是WP8中的一件好事,但它不存在。所以唯一的其他解决方案可能是转换器,这似乎是更多的阻力然后你的建议...... :( – mishan