我是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