2010-11-03 70 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