MVVM了解基础知识

时间:2014-01-08 22:59:53

标签: c# wpf mvvm

我希望有人可以为我解决这个问题。我尽可能地努力坚持MVVM模式。是的,我明白这是一种模式而不是框架。

到目前为止,这是我印象中的印象。请告知这是否是错误的方法。

我的项目基本上是一个WMI浏览器,可以存储喜欢的查询并对计算机运行多个查询,然后比较结果。

观点: 基本上是项目的XAML部分。在这里,我们将控件绑定到模型视图,包括itemssource选择的项目和所需的任何其他内容。 因此View无法访问模型视图,它不会在模型视图中存储数据或操作数据。它只限于模型视图中的可观察集合

模型视图: 是从客户端交互发生的位置和事件触发器,IE:选择项目更改或单击按钮。然后,模型视图使用模型收集的数据在视图的可查看上下文中排列数据。

模特: 获取最终用户所需的数据,并存储模型视图需要时的数据。

我甚至接近这个吗?

查看 - XAML /控件样式/控件创建

模型视图 - 数据组织/事件管理/数据显示管理

模型 - 数据收集/远程连接到数据源。

2 个答案:

答案 0 :(得分:0)

只要您的ViewModel实际上没有处理视图(特定于WPF)的代码,那就很好。

将ViewModels视为技术无关。从理论上讲,您应该能够在控制台或Android应用程序中运行ViewModel,因此在System.Windows(特定于WPF)类中的任何引用或依赖项在ViewModel级别都是不可接受的。

答案 1 :(得分:0)

我想出来了。比预想的要容易一些。

public class ParentNode
{
    public ParentNode() { }
    public string ParentNodeName { get; set; }
    public ObservableCollection<SubNode> AddChildNodes { get; set; }
    public ObservableCollection<CheckBoxSubNode> AddCheckBoxChildNodes { get; set; }
}
public class SubNode
{
    public SubNode() { }
    public String SubNodeName { get; set; }
}

new ParentNode() { 
 parentnodename = "parent"
 addchildnodes = new SubNode() { Subnodename = "subnode" }
)

然后一些随机XAML绑定绑定到正确的属性,一切都很好。 我的视图模型仍然不能直接访问视图。 :)