en el patrón MVVM, hay exactamente un modelo de vista per View o hay exactamente un modelo de vista según el modelo?ViewModel por vista o por modelo?
Respuesta
Teóricamente, las relaciones son
Ver n - 1 ViewModel n - 1 Modelo
lo sé, mucha gente va bocado y me golpearon, pero ... en la práctica ...
Muy a menudo, en las aplicaciones de negocios, hay capa de acceso a datos (DAL). Y muy a menudo las entidades de DAL son sus Modelos. En ocasiones, debe envolver esas entidades con clases adicionales para proporcionar funcionalidad extendida o quizás algunas propiedades adicionales. Tal vez usted tiene sus propios modelos ...
ViewModels y vistas (en la práctica) por lo general tienen relación 1 a 1. Algo así como: cada pantalla (o parte de la pantalla) es en realidad una Vista y un Modelo de Vista emparejados. Por lo general, creo que algo así como - Ver es la capa de la interfaz de usuario y ViewModel es el nivel de código subyacente. View es solo un archivo XAML - capa de presentación. Y (la mejor práctica), todo lo demás debería estar en ViewModel: todos los procesos de recepción de datos, todos los comandos, todos los campos intercambiables, etc. De esta forma, normalmente puede probar ViewModel (con pruebas unitarias). Un modelo de vista puede tener varias vistas (en la práctica) por lo general sólo cuando se ha compartido ViewModels para, por ejemplo, DesktopApplication (WPF), Aplicación Web (Silverlight) y Windows Phone. Algo como esto. Pero generalmente - un ViewModel - una Vista. Si tiene varias vistas para un modelo de vista, generalmente tendrá muchos problemas de mantenimiento ...
Hay un modelo por modelo de vista y uno viewmodel por visión, en la otra dirección todo está n.
Ver n - 1 ViewModel n - 1 Modelo
Es posible usar más de una vista para el mismo modelo de vista y también es posible usar para muchas vistas diferentes modelos para la misma vista.
Muchos-Views a un modelo de vista:
Por ejemplo, en una disposición maestro-detalle se puede poner sus modelos de vista en un ObservableCollection y presentarlos en un cuadro de lista en la que se asocia la exhibición de los artículos a la propiedad Título del ViewModel. ListBox presenta una vista de sus modelos de vista. Entonces, ListBox.SelectedItem está vinculado a una vista diferente que presenta los detalles del modelo seleccionado.
Uno-View a-ViewModels:
A partir de un conjunto de modelos de vista que todos los nombres de propiedad común que comparten podían presentar todos los modelos de vista en la misma vista. Por ejemplo, podría tener un modelo de vista simple que consta de una propiedad Title y una propiedad ModelValue. En todos los modelos de vista, la propiedad Título sería una cadena pero cada modelo de vista diferente podría tener un tipo de datos diferente para la propiedad ModelValue. StringViewModel tendría una cadena ModelValue y DoubleViewModel tendría un doble ModelValue. La presentación de los diferentes modelos de vista podría compartir la misma vista que consiste en un TextBlock para presentar el Título y un TextBox para editar el ModelValue. Esto funcionaría para cualquier tipo editable en un TextBox.
mezclando y combinando las vistas y ViewModels puede obtener gran ventaja de una separación limpia de Tendencias y ViewModels.
- 1. Modelo "Merge" y ViewModel con o sin AutoMapper?
- 2. Validación: modelo o modelo de vista
- 3. "¿Estás seguro?" indicaciones. ¿Parte del ViewModel o simplemente la vista?
- 4. ¿Por qué no es bueno exponer el Modelo a través de ViewModel en Silverlight MVVM?
- 5. MVC: ¿por qué la separación de modelo, vista y controlador?
- 6. WPF (MVVM): ¿Cerrar una vista desde Viewmodel?
- 7. MVC pase JSON ViewModel a la vista
- 8. ¿Por qué mi miembro de MVC ViewModel es anulado por mi parámetro ActionResult?
- 9. MVP (Presentador de vista de modelo) o MVC (Controlador de vista de modelo)
- 10. Backbone.sync por modelo
- 11. Asp .Net MVC Viewmodel debe ser de clase o struct?
- 12. ¿Por qué dos clases, modelo de vista y modelo de dominio?
- 13. Prism2/MVVM Cerrar Vista desde ViewModel
- 14. MVVM - Diferencia entre el modelo y el modelo de vista
- 15. Aclaración MVVM: ¿Qué pertenece a ViewModel, qué pertenece al modelo?
- 16. Windows Forms (WinForms) Modelo Ver modelo de modelo de vista (MVVM) a DataBind o no
- 17. Buscar vista por nombre
- 18. Silverlight MVVM modelo de enlace y vista modelo
- 19. ¿Cómo actualizar el modelo cuando se vincula a un ViewModel?
- 20. ¿Cómo puedo vincular esta Vista a este modelo de vista?
- 21. MVC modelo de vista genérico
- 22. Filtros de ActiveAdmin por modelo
- 23. Rails respaldados por Redis modelo
- 24. Relación y validación ViewModel/View
- 25. ASP.NET MVC Model/ViewModel Validation
- 26. ¿Dónde haces tu validación? modelo, controlador o vista
- 27. ¿Debería un ViewModel en MVVM hacer referencia a la vista?
- 28. {obtener; conjunto; } utilizado en ViewModel
- 29. ASP.NET MVC La validación del modelo no funciona en ViewModel
- 30. Cómo elimino manejadores de eventos cuando termino con una Vista y un Modelo de Vista, pero no el Modelo