2013-04-24 50 views
0

这会把我拉上最近的墙。我有一个List<MyClass>对象有几个条目(我们称之为MyList),并且我有一个DataGridView控件。我可以将该控件的DataSource属性设置为MyList。我获得了MyList中的所有元素,并且MyClass对象的每个成员都有单独的列,非常好。如果我更改了任何成员,则可以使用调试器查看MyList并查看更改后的值。可以编辑一个DataGridView绑定到LINQ to Objects查询吗?

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

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

这将显示我想要(当然,在这种情况下,选择的每个对象的一个​​成员)的数据,但数据不能再被编辑。

是否有某种方法可以将筛选列表变为DataGridView,并让视图控件可编辑?我收集到使用由new块生成的匿名类型使得这是不可能的。那是对的吗?

回答

0

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

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

myCurrencyManager.SuspendBinding() 

myCurrencyManager.ResumeBinding() 
相关问题