Winforms 基础设施中的自定义排序

Winforms 基础设施中的自定义排序,winforms,sorting,compare,infragistics,Winforms,Sorting,Compare,Infragistics,我想在信息学中使用自定义排序。 我读到我可以使用IComparer 我有一个绑定了字符串数据类型的UltraGridColumnd。我想从另一列按值排序,这是长数据类型 可能吗 是的,这是可能的,并且可以使用IComparer接口准确地实现。每个UltraGrid列都有SortComparer属性,可以为其分配实现IComparer接口的对象。如SortComparer财产相关文档中所述: 属性,用于按排序行时执行自定义排序比较 这个专栏。在IComparer的比较方法中传递的值 将是两个Ult

我想在信息学中使用自定义排序。 我读到我可以使用IComparer

我有一个绑定了字符串数据类型的UltraGridColumnd。我想从另一列按值排序,这是长数据类型


可能吗

是的,这是可能的,并且可以使用IComparer接口准确地实现。每个UltraGrid列都有SortComparer属性,可以为其分配实现IComparer接口的对象。如SortComparer财产相关文档中所述:

属性,用于按排序行时执行自定义排序比较 这个专栏。在IComparer的比较方法中传递的值 将是两个UltraGridCell对象

下面是关于您的场景的代码片段,因为比较值来自另一列

公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
私有void Form1\u加载(对象发送方、事件参数e)
{
ultraGrid1.DataSource=初始化的DataSource(10);
ultraGrid1.DisplayLayout.Override.HeaderClickAction=HeaderClickAction.SortMulti;
ultraGrid1.DisplayLayout.Bands[0]。Columns[0]。SortComparer=new CustomComparer();
}
私有数据表InitializeDataSource(int行)
{
DataTable=新的DataTable();
表.Columns.Add(“字符串列”,typeof(字符串));
表.Columns.Add(“长列”,typeof(Long));
对于(int-index=0;indexsecondCellValue)
{
返回-1;
}
其他的
{
返回1;
}
}
}

是的,这是可能的,并且可以使用IComparer接口准确地实现。每个UltraGrid列都有SortComparer属性,可以为其分配实现IComparer接口的对象。如SortComparer财产相关文档中所述:

属性,用于按排序行时执行自定义排序比较 这个专栏。在IComparer的比较方法中传递的值 将是两个UltraGridCell对象

下面是关于您的场景的代码片段,因为比较值来自另一列

公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
私有void Form1\u加载(对象发送方、事件参数e)
{
ultraGrid1.DataSource=初始化的DataSource(10);
ultraGrid1.DisplayLayout.Override.HeaderClickAction=HeaderClickAction.SortMulti;
ultraGrid1.DisplayLayout.Bands[0]。Columns[0]。SortComparer=new CustomComparer();
}
私有数据表InitializeDataSource(int行)
{
DataTable=新的DataTable();
表.Columns.Add(“字符串列”,typeof(字符串));
表.Columns.Add(“长列”,typeof(Long));
对于(int-index=0;indexsecondCellValue)
{
返回-1;
}
其他的
{
返回1;
}
}
}