Cómo admitir el enlace de ListBox SelectedItems con MVVM en una aplicación navegable
Estoy creando una aplicación WPF que se puede navegar a través de los botones y comandos personalizados "Siguiente" y "Atrás" (es decir, no uso unNavigationWindow
). En una pantalla, tengo unListBox
que tiene que soportar selecciones múltiples (usando elExtended
modo). Tengo un modelo de vista para esta pantalla y almaceno los elementos seleccionados como una propiedad, ya que deben mantenerse.
Sin embargo, soy consciente de que laSelectedItems
propiedad de unListBox
es de solo lectura. He estado tratando de solucionar el problema usandoesta solución aquí, pero no he podido adoptarlo en mi implementación. Descubrí que no puedo diferenciar cuando uno o más elementos están deseleccionados y cuando navego entre pantallas (NotifyCollectionChangedAction.Remove
se muestra en ambos casos, ya que técnicamente todos los elementos seleccionados se deseleccionan cuando se navega fuera de la pantalla). Mis comandos de navegación se encuentran en un modelo de vista separado que administra los modelos de vista para cada pantalla, por lo que no puedo poner ninguna implementación relacionada con el modelo de vista con elListBox
ahí.
He encontrado otras soluciones menos elegantes, pero ninguna de ellas parece imponer un enlace bidireccional entre el modelo de vista y la vista.
Cualquier ayuda sería muy apreciada. Puedo proporcionar parte de mi código fuente si me ayudara a entender mi problema.