在我的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#标签,因为我感觉只是通过将标签/值添加到“属性”的正确“属性”来解决这个问题,尽管我很感激它)
答案 0 :(得分:1)
我很确定你不能对FallbackValue应用绑定。一个非常简单的解决方法是在“Something”属性中检查null。
private string _something;
public string Something
{
get { return _something ?? AppResources.ApplicationTitle; }
set
{
_something = value;
OnPropertyChanged("Something");
}
}