1
我有一个Silverlight项目,可以通过Resources文件处理多语言。现在我应该删除资源文件并从数据库中读取消息。 当我使用的资源文件我绑定控件是这样的:按字典本地化<字符串,字符串>
<TextBlock Text="{Binding Strings.User, Source={StaticResource Localizer}}"/>
现在我用的字典是这样的:
public class Localizer : INotifyPropertyChanged
{
...
public Dictionary<string, string> Strings
{
get { return _strings; }
set
{
_strings = value;
RaisePropertyChanged("Strings");
}
}
...
}
和控件绑定到这个字典是这样的:
<TextBlock Text="{Binding Strings[User], Source={StaticResource Localizer}}"/>
它工作正常,但我应该更改应用程序中的所有绑定,并使用([])括号代替(。)点。 有什么办法可以防止这种变化?
坦亲爱的哈桑汗,但你相信,我们可以绑定UIEelement动态对象。 我喜欢你的示例,但在VS输出我得到System.Windows.Data错误:BindingExpression路径错误:'用户'属性上找不到.... ....字符串'....字符串'(HashCode = 10857028)。 BindingExpression:Path ='Strings.User'DataItem ='... Localizer'(HashCode = 30604389);目标元素是... 但是当我从代码中的字符串中获取属性时,不在xaml中正常工作。你知道我该怎么做? –
刚刚才知道这是Silverlight中的错误http://connect.microsoft.com/VisualStudio/feedback/details/522119/databinding-to-dynamic-objects-is-broken# –
感谢您的关注。 你对我的第一个问题有另一种解决方案吗? –