Подтвердить что ты не робот

MVVM: CollectionView в ViewModel или CollectionViewSource в xaml?

Я разрабатываю приложение WPF с использованием шаблона MVVM, и мне нужно отобразить список элементов в ListView (с фильтрацией), с полями выбранного элемента, отображаемого в представлении "Мастер/Деталь". Я разорван между двумя следующими способами:

  • Предоставление CollectionView в моей модели ViewModel и привязка к этому.
  • Предоставление простого IList в моей модели ViewModel и использование CollectionViewSource для создания CollectionView в XAML.

Есть ли приемлемый способ сделать это? Любые мысли о лучшем виде?

4b9b3361

Ответ 1

Я делаю первые (выставляю CollectionView из виртуальной машины), но важно то, где ваша логика фильтрации. Это определенно должно быть в виртуальной машине, чтобы ее можно было протестировать, даже если представление должно подключить CollectionViewSource к виртуальной машине. Тем не менее, я не думаю, что есть что-то особенно неприятное или анти-MVVM об экспонировании CollectionView с вашей виртуальной машины.

Ответ 2

Я знаю, что немного опоздал, отвечая на ваш вопрос, но я только что видел его сегодня.

Я создал мастер-модели/подробные модели просмотра, которые используют CollectionViewSource и сообщают об этом.

Я написал о viewmodel для таблиц master/detail здесь, где используется: http://reyntjes.blogspot.com/2009/04/master-detail-viewmodel_24.html

Вы также можете найти viewmodel для класса observablecollection на моих страницах блога.

Может быть, вы сочтете это полезным для вас.