2013-04-24 49 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() 
相關問題