我希望有人能帮我解决这个问题。我尽最大努力尽可能地坚持MVVM模式。是的,我知道这是一个模式,而不是一个框架。
到目前为止,看完这是我的印象。如果这是错误的方法,请告知。
我的项目基本上是一个WMI浏览器,它存储喜爱的查询,并对计算机运行多个查询,然后比较结果。
视图:基本上是项目的XAML部分。在这里,我们将控件绑定到模型视图,包括项源所选项和所需的任何其他项。因此,View无法访问模型视图,它不会在模型视图中存储数据或操作数据。它只限于模型视图内的可观察集合
模型视图:是从客户端交互、IE:选择项目更改或单击按钮中触发事件的位置。模型视图然后使用模型收集的数据,将数据排列在视图的可查看上下文中。
型号:获取最终用户所需的数据,并存储模型视图需要的数据。
我在这件事上接近正确吗?
视图-XAML/控件样式/控件创建
模型视图-数据组织/事件管理/数据显示管理
模型-数据收集/到数据源的远程连接。
只要ViewModel实际上没有处理视图(WPF特定)代码,听起来就不错。
将ViewModels视为技术不可知论者。理论上,您应该能够在控制台或Android应用程序中运行ViewModel,因此在ViewModel级别上,对System.Windows
(WPF特定)类的任何引用或依赖都是不可接受的。
我想明白了。比最初预想的要容易一点。
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绑定到正确的属性,一切都很好。我的视图模型仍然无法直接访问视图。:)