我目前正在学习WPF中的MVVM模式。我认为这很酷但我的问题是:直接使用viewmodel将子视图附加到其视图是否正确?
例如,假设我们有一个方法,其中包含一个循环,当单击一个按钮时,该循环会向网格添加新行。我的ViewModel应该只包含纯数据还是包含用于在字段上放置新元素的逻辑?除了删除它们。
答案 0 :(得分:1)
直接使用viewmodel将子视图附加到视图是否正确?
没有。视图模型不应该知道任何视图元素。
我的ViewModel是否只包含纯数据,还是包含用于在字段上放置新元素的逻辑?除了删除它们。
前者。视图模型可以公开视图恰好在Grid
中显示的数据对象的集合。或者其他一些小组。视图模型并不关心哪个。
您通常会在视图中使用ItemsControl
来显示视图模型集合中的项目,即ItemsControl
绑定到源集合并显示面板中每个项目的直观表示。