DomainDataSource - фильтрация на клиенте
-
05-07-2019 - |
Вопрос
Как лучше всего фильтровать DomainDataSource (DDS) на клиенте?
Мой DDS подключается к службе WCF Ria и загружает несколько элементов. Я хочу показать биты этой информации в разных элементах управления. например, несколько ItemsControls, показывающих элементы из DDS, отфильтрованные по различным значениям. Я знаю, что мог бы создать новый DDS для каждого элемента управления и фильтра на сервере, но я бы предпочел совершить только 1 поездку.
Я попытался использовать iValueConverter для фильтрации. например,
ItemsSource="{Binding Data, ElementName=PermissionsByUserDS, Converter={StaticResource PermissionsByTypeConverter}, ConverterParameter={StaticResource GeneralPermissions}}"
Это прекрасно работает, когда элементы управления сначала привязаны к данным, но они не обновляются, когда DDS перезагружает свои данные. Если я удалю конвертер, ItemsControls обновится, как ожидается, но, очевидно, тогда я не получу фильтрацию.
Я также могу выполнять фильтрацию и привязку вручную в коде при каждом обновлении DDS, но я не уверен, что это лучший подход.
Есть предложения?
Решение
Возможно, вы захотите взглянуть на CollectionViewSource. Это позволяет фильтровать коллекции.
http: //msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.filter(VS.95).aspx р>
http://microsoft.realdolmenblogs.com/post/CollectionViewSource-in -Silverlight.aspx р>
http://www.mokosh.co.uk/post /Silverlight-3-CollectionViewSource.aspx р>