DataGridView基于另一行的值排序

时间:2009-11-23 18:34:15

标签: c# sorting datagridview

我有一个DataGridView(使用WinForms),我将一个特定的行视为它之前的行的“子”。这意味着当用户对列进行排序时,该子行将保持与父级的连接,以便它始终显示在其下方。

我正在重写SortCompare方法来处理这个问题,但我不确定如何做到这一点。在SortCompare中,我知道该行是否有父行,如果是,那行是什么。因此,我希望能够说,“如果row1有父级,那么排序结果就是将row1的父级与row2进行比较的任何结果”。但是如何在没有明确比较值的情况下实现这一点(我想避免这样,所以我不必跟踪数据类型)?比较器是否可以在任何地方使用?或者,有没有更好的方法来做我想要完成的事情?

2 个答案:

答案 0 :(得分:0)

将列上的SortExpression设置为任何有效的列名称。它本身不一定是

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sortexpression.aspx

答案 1 :(得分:0)

我猜你想要小团体。你看过自定义DataGridViewGrouper component了吗?

您可以为每个行组设置不同的属性,并使用此自定义组件来创建组。每个两行组都有一个不同的属性,允许您将它们组合在一起。对我而言,您必须通过不同的标签或属性以某种方式区分各个组。在这种情况下没有父子关系,但我不认为这很重要,因为你想要对它们进行分组。