2010-11-03 96 views
2

我想在這勢必像這樣的列進行排序一個WPF的工具包的DataGrid:WPF工具包的DataGrid:與空值排序

<toolkit:DataGrid.Columns> 
    <toolkit:DataGridTextColumn Header="MyColumn" Binding="{Binding AnObject.AProperty}" /> 
</toolkit:DataGrid.Columns> 

現在,當AnObject爲null,與消息「在一個ArgumentException至少有一個對象必須實現IComparable「將被拋出。

解決此限制的最佳方法是什麼?我真的不想改變域模型來返回一個NullObject模式。

將轉換器與綁定直接結合使用可能會非常麻煩,因爲我有許多這些列和多個DataGrid。

我應該寫一個自定義的ViewModel foreach DataGrid並在ItemsSource屬性上使用Converter?

我很欣賞每一個建議!

回答

1

我會採取不同的策略:爲AnObject創建一個ViewModel,其中包含一個暴露AProperty並在所有DataGrid上使用它的屬性。當AnObject爲空時,VM應該能夠在AProperty上發出適當的值。

+0

但是然後我不得不將DataGrid的ItemSource(域實體列表)轉換爲包含AnObject的ViewModel的模型。非常感謝您的意見,但。 – Falcon 2010-11-04 09:12:55