绑定数据视图多列排序与查找组合框c#

本文关键字:查找 组合 排序 数据 视图 绑定 | 更新日期: 2023-09-27 17:50:35

我在绑定到数据表的datagridview上实现多列排序。datagridview对其中一列使用组合框,其中display成员是来自另一个表的字符串,Value成员是提供外键的整数。在单独的数据视图中,我可以通过iccompare和FormattedValue属性使用RowComparer轻松排序。然而,主datagridview是绑定的,不允许我使用那个接口。因此,我尝试使用如下所示的排序字符串对底层数据进行排序,但这可以对查找字段排序,而不是对ID字段排序。什么好主意吗?

在表单上:

private void customSortToolStripMenuItem_Click(object sender, EventArgs e)
        {
         string sortString = "SectionID ASC, Shift DESC"; //I want the name not ID
         if (sortString != "")
           {
              DataView view = localDataSet.myBaseTable.DefaultView;
              view.Sort = sortString;
              tableBindingSource.DataSource = view;
           }
        }

绑定数据视图多列排序与查找组合框c#

也许LINQ会给你更好的访问权限

DataTable dt = new DataTable();
var result = dt.AsEnumerable()
    .OrderBy(row => row.Field<decimal>("ColumnNameA"))
    .OrderByDescending(row => row.Field<decimal>("ColumnNameB"));