这让我走近最近的墙。我有一个带有几个条目的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
块生成的匿名类型使得这不可能。这是对的吗?
答案 0 :(得分:0)
我不是100%肯定,但我相信如果您希望您的单元格可以编辑,您可以从网格中取消绑定源并稍后重新绑定它。这不是理想的,但是,我会在加载网格视图时取消绑定我的源代码,然后在保存之前将其重新绑定。
Dim myCurrencyManager As CurrencyManager = DirectCast(BindingContext(DataGridView1.DataSource), CurrencyManager)
myCurrencyManager.SuspendBinding()
myCurrencyManager.ResumeBinding()