2010-05-11 45 views
4

我有一個「東西」需要過濾,然後以分組和排序的方式顯示的列表。計算分組和排序順序所需的數據不可用作簡單屬性 - 需要在代碼中完成一些工作才能計算順序和組。自定義排序邏輯組使用CollectionViewSource

CollectionViewSource讓我定義自定義過濾器和排序邏輯 - 到目前爲止這麼好。它還允許我將GroupDescriptions綁定到值轉換器,以便可以生成組名。

我想要做的最後一件事是控制生成的組出現的順序,這使我很痛苦!

我看到的所有關於CollectionViewSource.SortDescriptions的表示將按屬性名稱排序組,但我沒有可供排序的屬性。 SortDescriptions不能像GroupDescriptions那樣綁定到一個值轉換器,我不能和其他想法綁定。

所以 - 你如何實現CollectionViewSource組的自定義排序邏輯?

回答

6

This post on Bea Stollnitz' blog演示如何做到這一點。您必須先按照您的分組標準進行排序。即使這不是一個具體的屬性,也應該可以使用與用它們相同的邏輯對項目進行排序,不是嗎?!當然,使用SortDescription實例是不可能的,但您可以改用ListCollectionView.CustomSort屬性並指定適當的IComparer實現。

+0

這似乎不適用於我,當我嘗試它,但我會回去再看看,因爲我從那以後嘗試了一堆其他的東西,這很有可能我錯過了一些東西...... – MarcE 2010-05-11 09:18:58

+0

嗯,它適用於我。也許你可以發佈一些代碼,然後我們可以嘗試找到你的問題。 – gehho 2010-05-11 09:27:11

+0

好吧,我有一個「看不見樹木的時刻」的時刻。謝謝 - 在清除了所有我想要的東西之後。 – MarcE 2010-05-12 07:39:41