如何在具有分组的Silverlight DataGrid上启用排序?

时间:2011-12-01 19:07:26

标签: .net silverlight xaml silverlight-4.0

我似乎无法找到一种方法来指定它首先对组名进行排序,然后是列。我正在使用DataGrid。

编辑:我的错误,我使用的是DataGrid,而不是网格。

1 个答案:

答案 0 :(得分:2)

网格不是数据控件(如DataGrid),所以除了手动排序然后逐个添加其他项目之外,实际上没有干净的方法。

您需要将Grid视为HTML Table标记的XAML版本。

编辑(OP从Grid更改为DataGrid,添加以下内容):

内置了对DataGrid进行排序的支持,用于对实现IList接口的任何集合进行排序。如果你正在使用AutoGenerateColumns,那就是它。但这并不是你想要做的事情。

听起来你正在尝试以编程方式进行。您需要做的是设置列的SortMemberPath。如果您手动创建列,它只是列上的属性。如果您正在使用自动生成,则可以在AutoGeneratingColumn事件中执行此操作。

如果您也在XAML中手动创建列,可以在XAML中执行此操作,只需设置列的属性。

请记住,这些只是在DataGrid中进行排序的一般说明。对于您正在询问的更复杂的排序,您需要对正在使用的数据源进行排序,即您将网格绑定到的集合。

我不确定你的意思是“首先是小组名,然后是专栏”。您是否将组名称作为默认排序,然后根据用户需要进行列分类?如果是这样,这些说明应该有帮助。如果没有,我不确定你的意思。