我是MVVM的新手并且正在开发一个应用程序,我想在我的应用程序中实现一些东西
我的viewmodel应该能够启动新视图。 场景(一个命令绑定到一个按钮,一些进程决定做什么,根据结果,我需要显示View1或View2)
成功操作后,我的viewmodel应该显示一个消息框,如果打开了多个视图,则必须在右视图上提示消息(与viewmodel绑定)。
我想从我的视图模型中提供某种通知来查看。请指引我朝正确的方向前进。
由于
答案 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();