2

だから私はアイテムソースとして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.microWPFLocalizationExtension拡張。

4

2 に答える 2