MVVM - 如何处理 ViewModel 中由模型组成的匿名类型
Posted
技术标签:
【中文标题】MVVM - 如何处理 ViewModel 中由模型组成的匿名类型【英文标题】:MVVM - How to handle anonymous types composed of models inside ViewModel 【发布时间】:2021-10-26 19:11:02 【问题描述】:目前我的视图需要接收一个包含来自两个不同模型的信息的列表。
类似的东西
public class ViewModel
[JsonProperty("")]
public List<Unknown> viewModelList;
这个Unknown
类型将包含来自两个不同模型的信息,就像这样。
public class FirstModel
int w;
int x;
public class SecondModel
int y;
int z;
public class Unknown //Model or ViewModel?
[JsonProperty("")]
int w; //From FirstModel
[JsonProperty("")]
int x; //From SecondModel
我的问题是,这个Unknown
类型必须是模型吗?我对模型的想法是它们代表业务实体或数据库实体,而 ViewModel 是这些模型的抽象。在这种情况下,Unknown
什么都不是,而是FirstModel
和SecondModel
的抽象,所以我认为它更像是一个 ViewModel,而不是一个模型,但是如果我把它当作一个 ViewModel,我无法从中制作列表,否则我的代码将如下所示
public class ViewModel
[JsonProperty("")]
public List<UnknownViewModel> viewModelList;
这将是 ViewModel 中的 ViewModel,我不知道这是常见的做法还是好的做法。
【问题讨论】:
【参考方案1】:你所说的绝对没有功能上的区别。重要的是你如何使用这些类型。
model 只是一个包含数据(或状态)的类型。 view-model,顾名思义,是用作视图(或表示)支持的模型。就是这样。
在这里,在您的示例中,您使用 Unknown
作为模型 - 一个被用作可能用作视图模型的类型的集合属性的元素类型。
【讨论】:
以上是关于MVVM - 如何处理 ViewModel 中由模型组成的匿名类型的主要内容,如果未能解决你的问题,请参考以下文章
避免在 React 中由对象字面量引起的重新渲染:如何处理对象中的变量?
在 MVVM + Coordinator 中,如何处理子视图?