【发布时间】:2020-12-15 13:14:32
【问题描述】:
我正在使用 WPF/Prism 开展一个项目。该应用程序具有不同的模块,其中一个模块可以改变 resx 对象的文化。这很好用,加载的每个模块都会显示翻译后的文本。
如果任何模块已经加载,文本将不会更新。首先,我尝试了x:Static 的方法,但很快意识到静态值对我的问题没有帮助。现在我在我的视图模型中实现了一个 get-only 属性,它返回本地化的字符串。
public string UserDetailsLabel => Messages.UserDetailsLabel;
<TextBlock Text="{Binding UserDetailsLabel, Mode=OneWay, NotifyOnSourceUpdated=True}"/>
但是,我不知道在哪里告诉 WPF(或 Prism)文化已经改变并更新显示的值。更改区域性的模块将Culture 属性设置为Messages(在Messages.Designer.cs 中生成)。
有没有办法通知值发生了变化?
【问题讨论】: