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# –
感謝您的關注。 你對我的第一個問題有另一種解決方案嗎? –