Фильтрация с помощью CollectionViewSource в MVVM / XAML в Silverlight - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть 4 таблицы:

  1. Магазины => StoreID, AddressID
  2. Контакты => ContactID, StoreID, DesignationID,
  3. Обозначение => Обозначение ID
  4. Address => AddressID

В Entity Query я использовал «Включить» при получении всей информации о магазинах.

ObjectContext.Stores.Include("Address").Include("Contacts.Designation");

Итак, я получил все магазины со всеми их контактами и другими объектами, такими как Address. Теперь я хочу отфильтровать контакты Магазина, но наша Служба домена Linq не позволяет фильтровать с помощью Включить. Это включает в себя все данные. Поэтому я хочу использовать CollectionViewSource для фильтрации моих дочерних данных.

В пользовательском интерфейсе у меня есть один ListBox для информации о магазине, а внутри этого ListBox -> у меня есть еще один список для контактов магазина, и я хочу, чтобы эти контакты были отфильтрованы с некоторым условием для его загрузки ...

Я не могу понять, как это сделать с MVVM или напрямую в XAML. Но лучше делать это с MVVM.

Может кто-нибудь помочь мне решить эту проблему?

Спасибо за ваше время и помощь.

1 Ответ

0 голосов
/ 07 февраля 2012

Сначала необходимо получить значение по умолчанию ICollectionView для исходного элемента.

Вы можете сделать это следующим образом:

var collectionView = CollectionViewSource.GetDefaultView(collectionToFilter);

Далее вы создадите делегат фильтра следующим образом.

collectionView.Filter = delegate(object item){return some boolean expression;};

Надеюсь, это поможет

...