我有一个包含用户信息的数据网格
UserName UserID UserHobby
我有一个comboBox链接到上面的每个列。 如果用户单独选择任何一个框,它会将选定的数据网格行带到匹配行的第一个出现位置。但是,例如,如果用户选择值“Bryan”是UserName和业余爱好“golf”,我希望所选单元格移动到存在两个值的行。
目前,我的第二个组合框的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'
答案 0 :(得分: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();