我熟悉使用DataView的dataTable中的行过滤。
我想过滤一个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