2013-04-01 32 views
1

我在我的DataGrid列中顯示了一些枚舉值。我將SortMemberPath設置爲由這些枚舉值表示的屬性。但是,當單擊列標題時,它不會對我的枚舉進行排序,因爲我沒有指定如何對此類型進行排序。這是一個枚舉,所以我不能完全覆蓋<運算符。有任何想法嗎?按枚舉類型對datagrid列進行排序

更新: 我試圖避免第二個屬性,如果我可以。我只能設置SortMemberPath =「MyEnumProperty」。我無法告訴它如何解釋這個價值。

_colDefs["Subtype"] = new DataGridTextColumn() 
{  
    Binding = new Binding("") { Converter = new SubtypeConverter() }, 
    SortMemberPath = "Subtype" 
}; 

我的財產是這樣的:

public SubtypeEnum Subtype { get; set; } 
+0

你可以顯示你的xaml嗎? – ethicallogics

+0

它應該開箱即用。我同意道德邏輯,一些代碼肯定會幫助解決這個問題。 – icebat

回答

1

嘗試綁定到指定的屬性名稱:

_colDefs["Subtype"] = new DataGridTextColumn() 
{  
    Binding = new Binding("Subtype"), 
    SortMemberPath = "Subtype" 
}; 

你甚至那倒需要轉換器了(如果它只是轉換爲字符串)。

1

可以投一個枚舉由硬鑄鐵只是INT:

(int)MyEnum.EnumValue 

如果你能假的屬性添加到您的數據只需簡單地將其枚舉值重新設置爲int即可,您應該可以通過該屬性對其進行排序,即使它不可見。

+0

謝謝科迪,今天有點出來。 –