我有两种初始化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