【发布时间】:2021-04-27 02:29:56
【问题描述】:
假设我有一个PersonModel 类对象的集合(显然位于我的应用模型中):
List<PersonModel> People { get;set; }
在我的应用视图中使用此对象的适当方式是什么,但作为ObservableCollection<T>?
我是否需要在ViewModel 中创建一个PersonViewModel 类,然后将每个PersonModel 对象的内容复制到一个新的PersonViewModel 对象中,然后 插入每个将这些PersonViewModel 对象转换为ObservableCollection<PersonViewModel> 对象?
我之所以这么问,是因为到目前为止我的知识有限,视图甚至能够SNIFF一个模型对象似乎没有意义:
<ListView ItemsSource="{MY List<PersonModel> OBJECT}" />
这被认为是合适的吗?似乎 ListView 应该只知道 PersonViewModel 对象。谢谢!
【问题讨论】:
-
MVVM 是一种范式,而不是一套手铐。你是对的,模型对象(甚至视图模型对象)根本不应该知道视图对象。除此之外,关于 100% 的时间将模型对象包装在视图模型对象中的僵化,有赞成和反对的论点。当常规模型对象足够时,放弃视图模型对象是否合法,这是一个意见问题。