2010-10-01 2 views
1

Я новичок в Silverlight 4 и PagedCollectionView. Я знаю, что можно добавить фильтр в PCV, такой какSilverlight 4 PagedCollectionView с несколькими фильтрами

pvc.Filter = новый предикат (FilterProjectId);

Где pvc является населенным PagedCollectionView.

Что мне нужно сделать, это стекировать несколько фильтров на PCV, поскольку у меня есть экран поиска с примерно 6 полями на нем и DataGrid, привязанный к PCV. В зависимости от того, какие Комбобокс выбраны, когда нажата кнопка поиска, мне нужно отфильтровать результаты PCV на основе этих выборов.

Кажется, я могу заставить его принять последний набор фильтров. Может ли кто-нибудь предоставить мне информацию о том, как их складывать?

Благодаря

ответ

1

Смотрите мой ответ на свой вопрос по этому поводу: How do I dynamically construct a predicate method from an expression tree?

Я использую эту технику с PCV. прекрасно работает.

+0

Я вижу, что вы делаете при работе со списком, но pagedcollectionview принимает предикат , а не предикат , поэтому, следуя вашему примеру, я не вижу, как он относится к pcv. –

+0

Я добавил еще один ответ с кодом для Predicate . Взгляни. – tobewan

+0

И если вам нравится ответ, проголосуйте за него. Благодарю. – tobewan

1

Свойство Filter просто делегат функции, которая принимает объект и возвращает логическое значение. Эта функция может быть такой же простой или сложной, как вы решили писать.

Звучит так, что вам просто нужна одна функция, содержащая ряд блоков if, которые сравнивают объект с каждым из ваших 6 полей по мере необходимости, а затем возвращают результат.

Дело в том, что нет «набора фильтров», в котором вы можете «складывать», вы просто пишете a Функция фильтра, которая делает все, что вам нужно.

Смежные вопросы