0

私は、WPF でのローカリゼーション方法について小さな調査を行っています。マークアップ拡張機能のアイデアについて聞いたことがあります。

<Label Content="{local:Translate {-- label ID here --}}" />

私はこのソリューションがとても気に入っています。実装が非常に簡単で、柔軟性が高いようです。ただ、ひとつ気になることがあります。ユーザーがランタイムでロケールを変更したとします。ローカライズされたプロパティが新しい言語に一致するように再評価されるようにするにはどうすればよいですか?

4

1 に答える 1

0

DependencyObject.InvalidatePropertyを呼び出す必要があります。実装しているオブジェクトにバインドしている場合、INotifyPropertyChangedそれらは基になるデータの変更によって再評価されることに注意してください。

DependencyObject.InvalidatePropertyDependencyPropertyなどの与えられた上で呼び出すことができますLabel.Content

Label label = new Label();
label.InvalidateProperty(ContentProperty);

これは、再評価が必要なさまざまなプロパティに対して行う必要があります。MSDNには、調査が必要なさまざまな代替手段の WPF 内でのローカリゼーションに関する詳細な記事があります。

于 2011-02-06T20:21:33.957 に答える