一个需要确认的想法

时间:2014-01-15 08:30:44

标签: c# wpf mvvm

使用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中

提前谢谢

1 个答案:

答案 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

相关问题