我有兩種初始化WPF CAL MVVM中的Views和ViewModels的方法。什麼是在WPF CAL中初始化模型和視圖的正確方法MVVM
1 - 似乎更受歡迎。要求您解析ViewModel以自動解析視圖。 ViewModel包含有關視圖的信息。
public interface IView
{
void SetModel(IViewModel model);
}
public interface IViewModel
{
IView View { get; }
}
public class View
{
public void SetModel(IViewModel model)
{
this.DataContext = model;
}
}
public class ViewModel
{
private IView view;
public ViewModel(IView view)
{
this.view = view;
}
public IView View { return this.view; }
}
2 - 看起來很乾淨,並從ViewModel中刪除視圖。要求您解析視圖以自動解析ViewModel。將對象注入視圖(不知道這是否好)。
public interface IView
{
}
public interface IViewModel
{
}
public class View
{
private IViewModel model;
public View(IUnityContainer unityContainer)
{
this.model = unityContainer.Resolve<IViewModel>();
this.DataContext = this.model;
}
}
public class ViewModel
{
}
什麼是初始化視圖和模型的可接受方法,以及每種方法的優點和缺點是什麼。你應該將物體注入視圖嗎?
選項1視圖屬性已被發現由我在各種例子,但我同意,它不應該在那裏。 – anon 2010-01-15 15:49:36