本地化是视图的责任还是ViewModel的责任?最初,我认为它显然属于VM,因为它只是需要由视图显示的数据。确切需要显示的内容对视图并不重要。此外,我还体验到XAML比ViewModel代码更易碎。但在今天的讨论中,有些人强烈认为本地化是观点的责任。
以下是我看到的两个版本的一些优点:
将它们放入视图的优点:
将它们放入ViewModel中的优点:
在使用MVVM模式的Wpf应用程序中,可本地化的元素(字符串资源)应该进入视图还是进入视图模型?为什么?这两种方法还有哪些其他优点和缺点?
注释后的一些背景信息:假设本地化-后端基于resx (而不是LocBaml)。此外,假设有一个框架(Variant)可以透明地用字符串替换视图中的资源ids,或者( ViewModel )会自动为ViewModel上的本地化属性生成ViewModel事件。
然而,我主要感兴趣的是,为什么从概念或更清晰的代码的角度来看更好,而不考虑后端。
发布于 2014-08-02 08:04:08
一些资源属于视图,一些资源属于ViewModel。我认为在这件事上没有严格的规则。用你自己的判断。就我个人而言,我正在与视图共享ViewModel的资源文件。
发布于 2013-12-12 16:19:05
要正确地实现您的WPF应用程序中的本地化,您需要遵循set过程,因此没有您建议的真正的选择。一件事。您需要在所有UI控件上设置Uid属性,这样在视图模型中显然不能这样做。此外,将所有本地化的string值放入单独的all中是很常见的,因此,在视图模型中也不能这样做。
我现在没有时间详细描述该怎么做。相反,有关WPF本地化的详细信息,请参阅MSDN上的WPF全球化和本地化概述页面。
https://stackoverflow.com/questions/20548357
复制相似问题