Wil*_*ert 5 wpf localization mvvm
本地化是 View 的责任还是 ViewModel 的责任?最初,我认为它显然属于VM,因为它只是需要通过视图显示的数据。到底需要显示什么对于视图来说并不重要。另外,我的经验是XAML比ViewModel代码更脆弱。但在今天的讨论中,有些人坚信本地化是视图的责任。
以下是我认为这两个版本的一些优点:
将它们放入 View 的优点:
将它们放入 ViewModel 的优点:
在使用 MVVM 模式的 Wpf 应用程序中,可本地化元素(字符串资源)应该进入视图还是视图模型?为什么?这两种方法还有哪些其他优点和缺点?
评论后的一些背景信息:假设本地化后端基于 resx (而不是 LocBaml)。此外,假设有一个框架,(View-Variant) 可以用字符串透明地替换视图中的资源 ID,或者 (ViewModel-Variant) 会自动为 ViewModel 上的本地化属性生成 INotifyPropertyChanged 事件。
然而,我主要感兴趣的是为什么从概念或更清晰的代码角度来看它更好,而忽略后端。