是否可以编辑绑定到LINQ to Objects查询的DataGridView?

时间:2013-04-24 18:45:13

标签: datagridview

这让我走近最近的墙。我有一个带有几个条目的List<MyClass>对象(我们称之为MyList),我有一个DataGridView控件。我可以将控件的DataSource属性设置为MyList。我得到MyList中的所有元素,MyClass对象的每个成员都有单独的列,非常好。如果我更改了任何成员,我可以使用调试器查看MyList并查看更改的值。

但是假设MyList有10,000个条目,我只想看看其中的10个。我可以使用LINQ to Objects来过滤这样的列表:

query = from myObect 
in MyList 
where SomeField == SomeGoodValue select new {myObject.SomeMember};
MyDataGridView.DataSource = query.ToList();

这会显示我想要的数据(在这种情况下,它会选择每个对象的一个​​成员),但无法再编辑数据。

有没有办法将过滤后的列表放到DataGridView中,并且可以编辑视图控件?我正在收集使用new块生成的匿名类型使得这不可能。这是对的吗?

1 个答案:

答案 0 :(得分:0)

我不是100%肯定,但我相信如果您希望您的单元格可以编辑,您可以从网格中取消绑定源并稍后重新绑定它。这不是理想的,但是,我会在加载网格视图时取消绑定我的源代码,然后在保存之前将其重新绑定。

Dim myCurrencyManager As CurrencyManager = DirectCast(BindingContext(DataGridView1.DataSource), CurrencyManager)

myCurrencyManager.SuspendBinding()

myCurrencyManager.ResumeBinding()