implementar español curso como wpf mvvm viewmodel

español - WPF MVVM: ¿Cómo se comunican ViewModels entre sí?



mvvm xamarin (2)

Los ViewModels usualmente ''heredan'' las relaciones del Modelo. Y no está mal agregar una relación cuando tiene sentido.

Es perfectamente correcto que un ViewModel tenga una propiedad que se refiera a otro ViewModel.

Tengo una Vista que tiene 2 vistas secundarias y se asigna un ViewModel a cada vista:

ViewA - ViewModelA { ViewB - ViewModelB ViewC - ViewModelC }

ViewB tiene un cuadro de texto y ViewC tiene un cuadro combinado, los cuales necesito acceso desde ViewModelA. No el control de la GUI en sí, sino el valor enlazado, es decir .Text del cuadro de texto y .SelectedItem del ComboBox. Actualmente solo tengo ViewModelB y ViewModelC como propiedades en ViewModelA pero se siente mal.

¿Cuál es la forma estándar para que los modelos de vista se comuniquen entre sí sin romper el patrón MVVM?


Una forma de desconectar ViewModels se comunica entre sí es usar un mecanismo de publicación / suscripción como el EventAggregator PRISM . Sin embargo, en una relación ViewModel padre / hijo, creo que está bien que el padre tenga conocimiento y control directo sobre el ViewModel hijo.

Personalmente, no creo que componer un ViewModel a partir de otros ViewModels sea una mala práctica. Lo hago todo el tiempo. En general, prefiero la composición sobre la herencia en mis modelos de vista.