所以这里有一个非常简单的问题,以前从未被问过,或者之前已被问过,但我错误地提出了这个问题。
所以说我在 WinForm 中将List<MyObject>
数据绑定到ListBox
控件。
像这样:
List<MyObject> list = new List<MyObject>();
// add some MyObjects to list...
myListBox.DataSource = new BindingSource(list, null);
然后说我后来想获得对该数据绑定列表的访问权限。
我认为这样的事情会起作用......
List<MyObject> results = (List<MyObject>)myListBox.DataSource;
在Visual Studio中,我可以清楚地看到DataSource
的{{1}}属性包含myListBox
的列表,但是,演员会生成MyObjects
。
有没有有效的方法来实现这一目标?或者我应该抓住原始列表?
答案 0 :(得分:3)
myListBox.DataSource
是BindingSource
,而不是List<T>
。您需要获取绑定源,然后从List
属性中提取数据:
var bs = (BindingSource)myListBox.DataSource;
List<MyObject> results = (List<MyObject>)bs.List;