2012-05-22 31 views
2

我有一個Silverlight工具包數據網格,其中一列顯示的數值的文字表述。我想對列的基礎數值進行排序,但將文本數據呈現給用戶。在網格中的列中的值是在一個格式,例如:自定義排序的Comparer <T>的Silverlight的Datagrid

  • 類別(200-300)
  • 某些類別(100-200)
  • 然而,另一個類別(300-400)

由於這些值是文本網格正確排序上的文字,但我可以通過數字類別排序已經和這些想將它插入到網格中的自定義比較。

,所述柵格單元被結合到僅所述的數據對象具有文本表示(並且沒有容易地將所述數字值的方式)。因此,在這種情況下,SortMemberPath =不起作用。

是否有可能注入自定義比較單個網格列和排序上呢?或者也許用自定義比較器實現一個CollectionViewSource?請記住,這是Silverlight,而不是WPF,因此與WPF相比,某些字段/屬性/類缺失。

回答

1

我覺得實現這一目標的最簡單的方法是添加兩個屬性到實體所綁定到電網一會的文本和其他可以是數字,只綁定一個和你可以使用網格的列之外SortMemberPath。如果不是您希望保留在實體中的兩個屬性,則可以僅保留Numeric並使用轉換器將其轉換爲文本,並使用SortMemberPath = NumericPropertyName。

+0

這就是我認爲 - 有沒有SortComparer邏輯,就必須在數據對象的屬性。感謝您的確認:) –