使用查找组合框 c# 绑定 Datagridview 多列排序

Posted

技术标签:

【中文标题】使用查找组合框 c# 绑定 Datagridview 多列排序【英文标题】:Bound Datagridview Multiple Column Sort with Lookup ComboBox c# 【发布时间】:2014-03-17 15:47:28 【问题描述】:

我正在对绑定到数据表的 datagridview 实现多列排序。 datagridview 对其中显示成员是来自另一个表的字符串和 Value 成员是提供外键的整数的列之一使用组合框。在单独的 datagridview 中,我可以通过 ICompare 和 FormattedValue 属性使用 RowComparer 轻松排序。但是,主数据网格视图已绑定,不会让我使用该接口。因此,我尝试使用如下排序字符串对基础数据进行排序,如下所示,但这可以对查找字段进行排序,而不是对 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;
           
        

【问题讨论】:

【参考方案1】:

也许 LINQ 可以让您更好地访问这里

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

我希望这会有所帮助。

【讨论】:

以上是关于使用查找组合框 c# 绑定 Datagridview 多列排序的主要内容,如果未能解决你的问题,请参考以下文章

Access 使用未绑定的组合框查找和添加记录

在 WPF / C# 中选择绑定项目后维护组合框文本

C# - 如何检查用户的输入是不是存在于组合框中(使用的数据绑定项)

Access VBA:根据非绑定列在组合框中查找项目

c# 组合框绑定到对象列表

数据表中的 MS-Access 未绑定组合框?