2010-10-01 66 views
1

我是新來Silverlight 4和PagedCollectionView。我知道可以向PCV添加過濾器,例如Silverlight 4 PagedCollectionView與多個過濾器

pvc.Filter = new Predicate(FilterProjectId);

其中pvc是填充的PagedCollectionView。

我需要做的是將多個過濾器堆疊到PCV上,因爲我有一個包含約6個字段的搜索屏幕和一個綁定到PCV的DataGrid。根據所選組合框的選擇,當按下搜索按鈕時,我需要根據這些選擇過濾PCV結果。

我似乎只能讓它採取最後的過濾器設置。任何人都可以提供有關如何堆疊它們的信息嗎?

由於

回答

1

見我的回答我自己的問題這一點: How do I dynamically construct a predicate method from an expression tree?

我使用了PCV這種技術。效果很好。

+0

我可以看到你在做什麼時使用列表,但pagedcollectionview採取了一個謂詞,而不是一個謂詞,所以當你按照你的例子,我不知道它是如何關聯到一個pcv。 – 2010-10-06 20:13:38

+0

我又添加了一個代碼爲的代碼。看一看。 – tobewan 2010-10-07 17:26:25

+0

如果您喜歡答案,請對此投票。謝謝。 – tobewan 2010-10-07 17:32:05

1

Filter屬性是一個簡單的委託接受一個對象,並返回一個布爾函數。該功能可以像您選擇編寫的那樣簡單或複雜。

聽起來你只是需要一個函數,它包含一系列if塊,根據需要將對象與每個字段進行比較,然後返回結果。

重點是沒有「過濾器集」,你可以「堆疊」你只寫a過濾器功能,你可以做所有你需要的。