绑定Datagridview多列排序与Lookup ComboBox c#

时间:2014-03-17 15:47:29

标签: c# winforms sorting datagridview multiple-columns

我在绑定到数据表的datagridview上实现多列排序。 datagridview对其中一列使用组合框,其中display member是另一个表的字符串,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 个答案:

答案 0 :(得分:0)

也许LINQ会为您提供更好的访问权限

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

我希望这会有所帮助。