我正在嘗試擴展我的WPF應用程序,以便從數據庫獲得多語言支持。WPF使用XAML從數據庫獲得多種語言支持
我的方法將使用ResourceKeys來識別每個控件的內容。
創建這MVVM只是一個不斷變化的性質來查詢與資源和所選擇的語言數據庫的事情,如下:
public string Example
{
get
{
if (SelectedLanguage == null)
return string.Empty;
return ControlMapping.getKey("MainWindow_TxtBoxExample", SelectedLanguage.LanguageID);
}
}
在試圖獲得工作我已經設置了綁定建立一個轉換器,它將採取關鍵並從數據庫中選擇適當的值。
public class LanguageSupport : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return ControlMapping.getKey(value.ToString(), SelectedLanguage.LanguageID);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
然後在窗口內,我創建了一個靜態資源來訪問轉換器。
<Window.Resources>
<LangSupport:LanguageSupport x:Key="ls"/>
</Window.Resources>
不幸的是,這是被我卡住...
我猜測,轉換器是不是要來填充各種控制內容的正確方法。
非常感謝您提供任何幫助。
您必須指定您的轉換器,以你擁有的每綁定,它不會自動完成 – cdie
我意識到這一點,但它怎麼是難以捉摸的一部分。當我最初開始編碼<標籤名稱=「ex3」內容=「{綁定路徑= ls}」/>,然而這dosn't工作。 –
根據您的Window.Resources,您需要通過更改綁定,其中ls是您的轉換器鍵。但是,如果你在很多窗口中使用它,我建議把它放在你的App.Resources(App.xaml) – cdie