だから私はアイテムソースとしてsのMenuItem
リストを使用しているこれを持っています。
私がやろうとしているのは、アプリケーションのローカライズを選択したカルチャー情報に変更することになっている、クリック/選択されたときに関数を起動することです。機能は正常に機能していると言えます。いくつかの例を調査して試した結果、残念ながらうまくいきませんでした。 CultureInfo
CultureInfo
<MenuItem Header="{lex:LocText MenuLanguages}" ItemsSource="{Binding LanguageList}" DisplayMemberPath="Name">
<MenuItem.ItemContainerStyle>
<Style>
<Setter Property="MenuItem.Command" Value="{Binding SetLanguage}" />
<Setter Property="MenuItem.CommandParameter" Value="{Binding}" />
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
コマンド:
private ICommand _SetLanguage;
public ICommand SetLanguage
{
get
{
if (_SetLanguage == null)
_SetLanguage = new RelayCommand(ChangeLanguage);
return _SetLanguage;
}
}
public void ChangeLanguage(object langChosen)
{
LocalizeDictionary.Instance.Culture = CultureInfo.GetCultureInfo(langChosen.ToString());
}
CultureInfo.GetCultureInfo()
パラメータとして文字列を取ります。
itemsource は基本的にObservableCollection<CultureInfo>
.
私の質問は、上記のコードの何が問題なのですか? 私はかなりの数の「解決策」を試してきましたが、実際には何もうまくいきませんでした...
リストからアイテムを選択しても、何も起こりません。
* また、メソッドにブレークポイントを設定しようとしましたChangeLanguage
が、メソッドが起動することさえないという結論に達しました。
使用caliburn.micro
とWPFLocalizationExtension
拡張。