首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVVM本地化-视图中的本地化资源与ViewModel中的本地化资源?

MVVM本地化-视图中的本地化资源与ViewModel中的本地化资源?
EN

Stack Overflow用户
提问于 2013-12-12 16:07:30
回答 2查看 2.4K关注 0票数 5

本地化是视图的责任还是ViewModel的责任?最初,我认为它显然属于VM,因为它只是需要由视图显示的数据。确切需要显示的内容对视图并不重要。此外,我还体验到XAML比ViewModel代码更易碎。但在今天的讨论中,有些人强烈认为本地化是观点的责任。

以下是我看到的两个版本的一些优点:

将它们放入视图的优点:

  • ViewModel忽略了本地化
  • 您可以在XAML中看到资源键。
  • 减码

将它们放入ViewModel中的优点:

  • 视图忽略了本土化
  • 视图不需要知道任何东西,除了它的ViewModel
  • 更容易组合和创建更复杂的字符串。

在使用MVVM模式的Wpf应用程序中,可本地化的元素(字符串资源)应该进入视图还是进入视图模型?为什么?这两种方法还有哪些其他优点和缺点?

注释后的一些背景信息:假设本地化-后端基于resx (而不是LocBaml)。此外,假设有一个框架(Variant)可以透明地用字符串替换视图中的资源ids,或者( ViewModel )会自动为ViewModel上的本地化属性生成ViewModel事件。

然而,我主要感兴趣的是,为什么从概念或更清晰的代码的角度来看更好,而不考虑后端。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-02 08:04:08

一些资源属于视图,一些资源属于ViewModel。我认为在这件事上没有严格的规则。用你自己的判断。就我个人而言,我正在与视图共享ViewModel的资源文件。

票数 1
EN

Stack Overflow用户

发布于 2013-12-12 16:19:05

要正确地实现您的WPF应用程序中的本地化,您需要遵循set过程,因此没有您建议的真正的选择。一件事。您需要在所有UI控件上设置Uid属性,这样在视图模型中显然不能这样做。此外,将所有本地化的string值放入单独的all中是很常见的,因此,在视图模型中也不能这样做。

我现在没有时间详细描述该怎么做。相反,有关WPF本地化的详细信息,请参阅MSDN上的WPF全球化和本地化概述页面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20548357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档