使用数据源dictionary.values过滤DataGridView

时间:2014-10-01 11:13:10

标签: c# data-binding datagridview filter datatable

我熟悉使用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

0 个答案:

没有答案