【问题标题】:Is it correct to let the viewmodel add children to its view?让视图模型将子视图添加到其视图中是否正确?
【发布时间】:2017-06-28 10:22:56
【问题描述】:

我目前正在学习 WPF 中的 MVVM 模式。我认为这真的很酷,但我的问题是:直接使用视图模型将子视图附加到其视图中是否正确?

例如,假设我们有一个方法,其中包含一个循环,当单击按钮时,该循环将新行添加到网格中。我的 ViewModel 应该只包含纯数据,还是还可以包含在字段上放置新元素的逻辑?以及删除它们。

【问题讨论】:

    标签: wpf xaml mvvm viewmodel


    【解决方案1】:

    直接使用视图模型将子视图附加到其视图中是否正确?

    没有。视图模型不应该知道任何视图元素。

    我的 ViewModel 应该只包含纯数据,还是还可以包含用于在字段上放置新元素的逻辑?以及删除它们。

    前者。视图模型可能会暴露视图恰好显示在Grid 中的数据对象集合。或者其他类型的面板。视图模型不关心哪个。

    您通常会在视图中使用ItemsControl 来显示视图模型集合中的项目,即ItemsControl 绑定到源集合并在面板中显示每个项目的可视化表示。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多