c# - 正确的MVVM方法

标签 c# wpf mvvm

我试图了解使用ViewModel和滞后模型的最佳方法是什么。

我的模型是自定义项目的集合(例如用户配置列表)。

我知道,公开此模型的正确方法是通过ConfigurationListViewModel来转换ui可读数据中的模型列表。

但是我应该如何管理ConfigurationListViewModel后面的项目?
单一配置本身是否应具有ConfigurationViewModel
还是主要的ConfigurationListViewModel应该处理其项目的暴露情况?

如果要在ConfigurationList中添加配置,则可以在Add()中调用ConfigurationListViewModel方法,它会自己创建一个新的Configuration,还是应该在父级中创建一个新的(Configuration? ([[ConfigurationViewModelAdd?] Configuration

最佳答案

实际上,答案是以上任何

如果 View 模型中使用的数据具有与模型相同的形式,则创建ConfigurationViewModel类只是Configuration类的副本,对您没有任何帮助。

至于添加,您可以选择任何一种方式。有时您想在 View 模型中进行所有编辑,以便可以通过不实际修改模型来“还原”更改。如果不必担心,那么首先修改模型并传播到 View 模型与方法一样有效。

综上所述,您的方法都不会违反MVVM。选择最有意义的东西,尤其是语义上的和将来的维护。通常,我更喜欢简单而不是盲目遵守诸如“每个数据对象都需要 View 模型表示”之类的原则。

关于c# - 正确的MVVM方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32191191/

相关文章:

c# - Oxyplot:从值开始 ColumnSeries

c# - Windows RT 中的自定义触摸键盘

c# - 在 WPF 中构建可逆的 StackPanel

c# - DataItem=null on binding,找不到原因?

c# - AutoMapper 需要 Get Accessor 来设置。 CS0154 属性或索引器 'Id' 无法在此上下文中使用,因为它缺少 get 访问器

c# - 在 Unity 上使用 .NET 自己的 httpClient 类

c# - 如何在 WPF 代码隐藏中创建 BeginStoryboard?

C# WPF - 没有获得焦点的弹出窗口

c# - 如何不断延迟方法的执行

wpf - 将 WPF TreeView 与通用 View 模型绑定(bind)