wpf - que - MVVM: CollectionView en ViewModel o CollectionViewSource en xaml?
observablecollection methods (2)
Estoy desarrollando una aplicación WPF usando el patrón MVVM y necesito mostrar una lista de elementos en un ListView (con filtrado), con los campos del elemento seleccionado que se muestran en una vista Maestra / Detalles. Estoy dividido entre las siguientes dos formas de hacer esto:
- Exponer un CollectionView en mi ViewModel, y vinculante para esto.
- Exponer un IList simple en mi ViewModel y usar CollectionViewSource para crear CollectionView en XAML.
¿Hay una forma aceptada de hacer esto? ¿Alguna idea de la mejor manera?
Sé que llegué un poco tarde respondiendo tu pregunta, pero acabo de verlo hoy.
He creado modelos de vista maestra / detallada que usan CollectionViewSource y escribí sobre ellos en un blog.
Escribí sobre un modelo de vista para tablas maestras / detalles aquí que usa: http://reyntjes.blogspot.com/2009/04/master-detail-viewmodel_24.html
También puede encontrar un modelo de vista para la clase observablecollection en las páginas de mi blog.
Tal vez lo encuentres de utilidad para ti.
Hago lo anterior (expongo CollectionView
desde la VM) pero lo que realmente importa es dónde está tu lógica de filtrado. Eso definitivamente debe estar en la máquina virtual para que pueda ser probado, incluso si la vista tiene que conectar CollectionViewSource
a la máquina virtual. Dicho esto, no creo que haya nada particularmente desagradable o anti-MVVM sobre exponer un CollectionView desde su máquina virtual.