它使集合是可綁定的嗎? List
,DataTable
是否有可以綁定到相同控件的通用接口?通用可綁定接口
Q
通用可綁定接口
3
A
回答
6
爲了解釋List<T>
和DataTable
工作(問題的腳註)如何,請閱讀以下但指出的是:
List<T>
實現IList
和具有被用於解析元數據的public T this[int index] {get;}
DataTable
implementsIListSource
,它提供了表的默認值DataView
;所述DataView
實現IList
,並實現ITypedList
提供元數據
類別結合按以下順序:
- 源極被用於測試
IListSource
;如果有的話IList
是通過GetList()
獲得 - 否則源測試
IList
;如果不可用,則拋出異常
然後爲IList
元數據被查詢:
- 的
IList
爲ITypedList
測試;如果找到,Foo
被暗示作爲經由TypeDescriptor.GetProperties(Type)
- 其他的第一項(獲得的類型和元數據 - 如果可用的話,這是通過
GetProperties
- 的
IList
爲公共類型化(非對象物)索引測試,即public Foo this[int index] { get; }
使用如果非空)經由GetType()
中查詢的類型,並通過TypeDescriptor.GetProperties(Type)
我們現在可以訪問的項目(IList
)和它們的元數據獲得的元數據;通過IBindingList
(提供雙向綁定和基本分類等),IBindingListView
(提供高級分類,過濾等),ICancelAddNew
和IRaiseItemChangedEvents
提供額外支持(可選)。
對於大多數常見情況(顯示數據和推回變化)List<T>
是好的;如果你需要顯示不相關的更新,因爲它們發生BindingList<T>
幫助 - 但請注意,以支持成員級更新(而不是僅僅添加/刪除/等)的T
必須實現INotifyPropertyChanged
作爲參考,「元數據」在這裏指的是「一套PropertyDescriptor
」(每列/財產1),它提供對底層數據的訪問(當提供object
時)以及有關成員本身(名稱,類型等)的信息。
0
大多數控件可以綁定到IList接口。
http://msdn.microsoft.com/en-us/library/system.collections.ilist.aspx
0
相關問題
- 1. Ninject綁定通用接口
- 2. Ninject綁定,接口界面
- 3. 特定的通用接口
- 4. 通過.NET中的某種接口使屬性可用於數據綁定?
- 5. 使用NInject綁定一個通用接口,使用默認的,如果爲通用類型綁定未設置
- 6. 綁定到通用UI元素/ XAML接口
- 7. 如何使用GIN爲通用接口創建通用接口的默認綁定?
- 8. 與NSSearchField的Laggy接口通過綁定連接到一個NSArrayController
- 9. 如何使用android數據綁定來綁定一個接口?
- 10. 將NSURLConnection綁定到特定接口
- 11. 通用接口
- 12. 是否可以使用Ninject約定綁定已存在的接口使用顯式綁定?
- 13. 通過可可綁定連接字典與字典
- 14. 將通過ToMethod綁定接口的方法與參數
- 15. 綁定到接口並顯示基接口中的屬性
- 16. 將通用接口綁定到存儲庫時使用Ninject獲取「MissingMethodException:無法創建接口實例」
- 17. 我們可以通過廣播接收器綁定綁定服務嗎?
- 18. 綁定在MVC3 EF帶班接口
- 19. 在窗口上直接綁定AttachedProperty
- 20. 綁定到一個類多個接口
- 21. WPF無法綁定到接口?
- 22. 接口和生成的綁定文件
- 23. 綁定到Apache的網絡接口httpclient
- 24. 綁定到接口類型的屬性
- 25. 多播綁定接口問題
- 26. VB.NET接口/延遲綁定排序
- 27. MVC模型綁定到接口
- 28. 綁定類型暗示接口實現
- 29. SignalR連接的綁定本地端口
- 30. 指定爲通用接口和類對
不直接回答這個問題,因爲'DataTable'沒有實現'IList' – 2011-04-09 12:40:44
@Marc - 感謝,是它更好地使用IListSource作爲,而不是一個IList該採取控制一個數據源? – WraithNath 2011-04-09 12:43:09
都不;最好使用'object'和* test *是否它是'IListSource'(否則使用它),否則*測試*它是否是'IList' - 或者只是將該邏輯交給使用' BindingSource' – 2011-04-09 12:46:13