仅当数据源是绑定源时才隐藏来自用户的datagridview行?

时间:2018-03-07 13:46:17

标签: c# .net datagridview bindingsource

我有一个预先存在的应用程序,其中包含datagridview。很长一段时间,通过循环遍历行和拉取单元格值来调用读取或更新dgv。

几个星期前我决定,由于我们将这些数据发送到两个外部系统,因此能够将每一行作为对象访问是很好的。因此,我从数据中创建了一个绑定列表,并将其链接到DGV。

然而,我遇到的一个问题是处理隐藏一些行:有一组单选按钮,“内部”,“外部”和“两者”(默认)。从历史上看,当用户单击“内部”或“外部”时,我们将遍历dgv并调整每一行的可见性属性(基于与表示“内部”选项的复选框列进行比较)。

由于我不会进入的原因,我认为删除行循环可见性更改代码对我来说是明智的。我看到我可以使用BindingSource.Filter来过滤行可见性。

但是,我遇到了一个问题,另外还有一个问题。

问题:如果我反复点击三个单选按钮之间的来回,似乎我无法正确清除过滤器。我已经尝试过BindingSource.RemoveFilter()和BindingSource.Filter = null。无论我按下三个选项中的哪一个,我最终得到一个空白的dgv。

我的问题是:这种过滤只影响人类的可见度吗?虽然它已应用,但是另一个线程可以进入并以编程方式更新dgv吗? (我猜它可以更新数据源,但我可能必须确保使用锁定语句和Suspendbinding / Unsuspendbinding包装此类更新。)

谢谢!

0 个答案:

没有答案