0

我有一个包含用户信息的数据网格

  UserName    UserID    UserHobby

我有一个组合框,它链接到上面的每一列。如果用户单独选择任何框,则会将选定的数据网格行带到匹配行的第一次出现。但是,例如,如果用户选择一个值“Bryan”是用户名和一个爱好“高尔夫”,我希望所选单元格移动到两个值都存在的行。

目前我的第二个组合框的 selectedIndexChanged 代码如下:

DataGrid.SelectedRows = 
          DataGrid.SelectedRows.Where(
          x =>x.Row.Field<string>(DataGrid.Text)
          .Contains(HobbyCombobox.Text));

但是这不起作用,有人有类似的方法或解决方案吗

根据来自答案的反馈,我的代码现在看起来像这样

  var query = DataGrid.SelectedRows.Cast<DataGridViewRow>()
                            .Where(x => x.Row.Field<string> (DataGrid.Text).Contains(comboBox10.Text));
          DataGrid.DataSource = query.ToList();
          DataGrid.Refresh()

但是,这会在 x.Row 上引发错误

            System.Windows.Forms.DataGridViewRow' does not contain a definition for  'Row' and no extension method 'Row' accepting a first argument of type  'System.Windows.Forms.DataGridViewRow'
4

1 回答 1

0

DataGrid.SelectedRows 是只读的。您需要重新绑定数据源。

var query = DataGrid.SelectedRows.Cast<DataGridViewRow>()
                    .Where(x =>x.Row.Field<string>(DataGrid.Text).Contains(HobbyCombobox.Text));
DataGrid.DataSource=query;
DataGrid.Refresh();
于 2013-09-04T09:39:27.520 回答