? He encontrado dos maneras de inicializar vistas y modelos de vista en WPF CAL MVVM.¿Cuál es la forma correcta de inicializar un modelo y ver en WPF CAL MVVM
1 - Parece ser más popular. Requiere que resuelva el ViewModel para resolver automáticamente la Vista. ViewModel contiene información sobre la Vista.
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 - Parece mucho más limpio y elimina la Vista del ViewModel. Requiere que resuelva la Vista para resolver automáticamente ViewModel. Inyecta objetos en la vista (No estoy seguro si esto es bueno o no).
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
{
}
¿Cuál es el método aceptado para inicializar las vistas y modelos y cuáles son las ventajas y desventajas de cada método. ¿Debería inyectar objetos en su vista?
la ventana de propiedades en la opción 1 se ha encontrado por mí en varios ejemplos, pero estoy de acuerdo en que no debería estar allí. – anon