【发布时间】:2011-12-01 19:07:26
【问题描述】:
我似乎找不到一种方法来指定它首先按组名排序,然后按列排序。我正在使用 DataGrid。
编辑:我的错误,我使用的是 DataGrid,而不是 Grid。
【问题讨论】:
标签: .net silverlight xaml silverlight-4.0
我似乎找不到一种方法来指定它首先按组名排序,然后按列排序。我正在使用 DataGrid。
编辑:我的错误,我使用的是 DataGrid,而不是 Grid。
【问题讨论】:
标签: .net silverlight xaml silverlight-4.0
Grid 不是数据控件(如 DataGrid),因此除了手动排序然后逐个添加其他项目之外,真的没有干净的方法可以做到这一点。
您需要将 Grid 视为 HTML Table 标记的 XAML 版本。
编辑(OP 从 Grid 更改为 DataGrid,添加以下内容):
内置对 DataGrid 排序的支持,用于对实现IList 接口的任何集合进行排序。如果您使用的是AutoGenerateColumns,那就是它。但这不是你想要做的。
听起来您正在尝试以编程方式执行此操作。您需要做的是设置列的SortMemberPath。如果您手动创建列,它只是列上的一个属性。如果您使用自动生成,则可以在 AutoGeneratingColumn 事件中进行。
如果您也在 XAML 中手动创建列,那么您也可以在 XAML 中通过设置列的属性来执行此操作。
请记住,这些只是在 DataGrid 中进行排序的一般说明。对于您正在查询的更复杂的排序,您需要对您正在使用的数据源进行排序,即您将网格绑定到的集合。
我不确定您所说的“首先是组名,然后是列”是什么意思。如果用户需要,您是否将组名作为默认排序,然后进行列排序?如果是这样,这些说明应该会有所帮助。如果不是,我不确定你的意思。
【讨论】: