bit*_*onk 8 wpf localization mvvm
什么是一个很好的方法来本地化基于MVVM的WPF显示,可以在运行时更改其语言?当然,我可以在ViewModel中为View中某处显示的每个字符串创建一个字符串属性,但这对我来说似乎相当繁琐.对此有共同的方法/最佳实践吗?
WPF对本地化有很多支持.也许你可以利用它?不幸的是,我认为在运行时更改用户界面语言有点困难,您可能需要提出自己的方案.
此外,由于视图模型是UI不可知的,我不认为在视图模型中存储用户界面字符串是一个很好的解决方案.这些都属于观点.
这是一篇关于WPF本地化的优秀文章.它涉及Microsoft支持的本地化技术,以及一些替代技术
我不推荐本地化的"官方"解决方案...这真的很难用,它会修改你的XAML(将x:Uid属性添加到每个可以本地化的元素),并且没有好的工具从MS到使它成为一个简单的解决方 良好的旧resx本地化更容易使用,并且与WPF集成很好,只有一些技巧(即标记扩展和/或附加属性).此外,由于绑定系统,您可以在运行时轻松更改界面语言.
您可以将它们存储在程序集的资源中,而不是在视图模型中使用用户界面字符串,并使用以下命令直接从XAML访问它们x:Static:
<TextBlock Text="{x:Static props:Resources.MyLabel}"/>
Run Code Online (Sandbox Code Playgroud)
该props命名空间应该是指你的程序集的Properties命名空间:
xmlns:props="clr-namespace:My.Assembly.Properties"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7353 次 |
| 最近记录: |