我熟悉dataTable中的行过滤,使用DataView .
我想过滤一个datagridview,它有一个基于字典值的数据源 . 所以,没有转换为数据表 .
dataGridView1.DataSource = _someDict.values.where(what you need).ToList();
对于过滤我想使用这样的东西:Filter DataGridView(萨米回答)或Filtering DataGridView without changing datasource(Brad Bruce和Joe Sisk的回答)
将数据源转换为dataTable,如:
var dt = (dataGridView1.DataSource as DataTable);
返回null .
所以我尝试使用bindingSource .
_bindingSource.DataSource = _someDict.values.where(what you need).ToList();
dataGridView1.DataSource = _bindingSource;
DataGridView使用正确的数据填充 . 但是,当我尝试像这样过滤:
_bindingSource.Filter= "MyColumn like '%" + textBox1.Text + "%'";
行未被过滤,我仍然可以看到所有行 . 甚至在dataGridView1.DataSource = _bindingSource之后; dataGridView1.Refresh();
有什么建议?我知道如何从列表中创建数据表(我有一个扩展名),但我更喜欢将字典值绑定到bindingSource或dataGridView . 亲切的问候,
Matthijs