使用MVVM模型,一个人如何将所有内容传达给它所处的位置?
这将被视为视图
public partial class WMIControl : UserControl
{
this.datacontext = new WMIViewModel() { };
}
这是ViewModel
public class WMIViewModel : WMIModel, INotifyPropertyChanged
{
}
我把:WMIModel放在那里我可以访问模型中的所有函数和存储数据,这是正确的吗? 这里我将所有绑定属性字段放在这里执行功能,例如,当单击一个复选框时
public string ComboBox_SelectedItem
{
get { return _ComboBox_SelectedItem; }
set
{
_ComboBox_SelectedItem = value;
//Lets do stuff here...
NotifyPropertyChanged("ComboBox_SelectedItem");
}
}
我认为这种模型的重点是将所有绑定放在代码的这一部分中?请指教。
这是模型
public class WMIModel
{
}
这里我假设我们放置属性但它们没有绑定。 ViewModel从Model中获取数据,将其存储到绑定到View的ViewModel属性中
我可能在这里偏离基地,但我无法弄清楚所有事情是如何相互作用的,我以为我做得很好,直到我介绍了一名背景工作者。然后它似乎并不属于任何地方。在模型中,它在一定程度上工作,但是我必须将属性从View绑定到模型,以便用户可以在TreeView中看到Data Populate。 如果我将它放入ViewModel,那么当它显然是模型的任务时,它将从多台计算机(它们的WMI)获取信息。
如果这看起来很蠢,我道歉。
所以回顾一下这些问题。
如何设置View / ViewModel / Model以相互通信(接口,类继承其他东西?) 包含示例代码的简单图表将是史诗。
后台工作者真正属于哪里,ViewModel或Model。
所有绑定的集合和绑定函数(例如IsSelected)是否都在ViewModel中
提前谢谢
答案 0 :(得分:1)
model-view-viewmodel是一种典型的WPF模式。它由一个视图组成,该视图获取所有用户输入并将其转发到viewmodel,通常使用命令。视图通过使用数据绑定主动从视图模型中提取数据。该模型不了解视图模型。
这是模型
public class WMIModel
{
}
这是viewmodel
public class WMIViewModel : INotifyPropertyChanged
{
public WMIModel Model {get;set;}
}
这是视图
public partial class WMIView : UserControl
{
public WMIView()
{
InitializeComponent();
this.datacontext = new WMIViewModel();
}
}
有关详细信息,请查看WPF Apps With The Model-View-ViewModel Design Pattern。