MVVM: CollectionView в ViewModel или CollectionViewSource в xaml? - PullRequest
38 голосов
/ 11 июня 2009

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

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

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

Ответы [ 2 ]

31 голосов
/ 11 июня 2009

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

3 голосов
/ 06 августа 2009

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...