0

我正在对 WPF 中的本地化方法进行一项小型研究。我听说了带有标记扩展的想法:

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

我非常喜欢这个解决方案:它非常容易实现并且看起来非常灵活。然而,我有一个担忧。假设用户在运行时更改了语言环境。如何确保重新评估本地化属性以匹配新语言?

4

1 回答 1

0

您需要调用DependencyObject.InvalidateProperty。请记住,如果您绑定到实现INotifyPropertyChanged它们的对象,它们将通过更改底层数据来重新评估。

DependencyObject.InvalidateProperty可以在给定的情况下调用,DependencyProperty例如Label.Content.

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

对于需要重新评估的不同属性,必须这样做。MSDN 上有一篇关于 WPF 中本地化的深入文章,其中还应研究不同的替代方案。

于 2011-02-06T20:21:33.957 回答