MVVM ViewModel查看通信

时间:2012-03-28 08:11:07

标签: c# wpf mvvm

我是MVVM的新手并且正在开发一个应用程序,我想在我的应用程序中实现一些东西

  1. 我的viewmodel应该能够启动新视图。 场景(一个命令绑定到一个按钮,一些进程决定做什么,根据结果,我需要显示View1或View2)

  2. 成功操作后,我的viewmodel应该显示一个消息框,如果打开了多个视图,则必须在右视图上提示消息(与viewmodel绑定)。

  3. 我想从我的视图模型中提供某种通知来查看。请指引我朝正确的方向前进。

    由于

1 个答案:

答案 0 :(得分:0)

你可能想尝试一些mvvm框架。我个人喜欢mvvm light,因为它适用于silverlight和WPF,而且很容易使用http://mvvmlight.codeplex.com/(没有隶属关系)

以下是一些主要框架的比较/对比:What framework for MVVM should I use?

大多数框架都有一个消息传递系统,可以在视图和视图模型之间以及视图模型之间发送更新。大多数框架还提供了处理MVVM消息框的固定消息(我知道MVVM Light会这样做)。

要在WPF中处理视图之间的切换,我使用DataTemplates和内容控件

在视图中.xaml我添加     <ContentControl Content="{Binding ActiveViewModel}" /> 这是注入视图的显示空间。 ActiveViewModel是viewModel的对象,用于保存选定的viewModel。

在ResourceDictionary中我添加了类似的内容:

  <DataTemplate DataType="{x:Type ViewModelNameSpace:ViewModelClassName}">
    <ViewNameSpace:ViewClasName/>
  </DataTemplate>

最后在ViewModel中,我设置了ActiveViewModel属性(设置为通过INotifyPropertyChanged通知UI更改)到我想要使用的viewModel的实例。

ActiveViewModel = new ViewModelClass();