我是Mvvm世界中的新手,但是我找到了几个例子,并且发现有一些不同的方式来实例化模型。我想知道做到最好/正确的方式。这两种方式都使用UnityWPF + MvvM + Prism
什么我foud:
var navigatorView = new MainView();
navigatorView.DataContext = m_Container.Resolve<INavigatorViewModel>();
m_RegionManager.Regions["NavigatorRegion"].Add(navigatorView);
我所做的:
var navigatorView = m_Container.Resolve<MainView>;
m_RegionManager.Regions["NavigatorRegion"].Add(navigatorView);
,我改变了构造函数接收视图模型,所以我可以在DataContext指向它:
public MainView(NavigatorViewModel navigatorViewModel)
{
this.DataContext = navigatorViewModel;
}
其他的例子,我发现另一种方式,如:
...vm = new viewmodel
...m = new model
v.model = vm;
get/set方法的DataContext
欢呼
这是我们大多数“传统”MVVM开发人员使用的方法......在引入PRISM时使用DataTemplate的问题非常容易被忽略,或者使用MVP示例混淆+1。 – 2010-11-03 06:17:20