它使集合是可绑定的吗? 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.Extensions.Factory从通用接口绑定对象?
- 3. IoC和绑定到接口
- 4. Ninject绑定,接口界面
- 5. 绑定NLB到接口
- 6. 多个接口的绑定
- 7. 特定的通用接口
- 8. 通过.NET中的某种接口使属性可用于数据绑定?
- 9. 使用NInject绑定一个通用接口,使用默认的,如果为通用类型绑定未设置
- 10. 通用接口的多个绑定错误
- 11. 绑定到通用UI元素/ XAML接口
- 12. “绑定”的通用存储库的接口
- 13. 绑定到一个显式实现通用接口在Silverlight
- 14. 如何使用GIN为通用接口创建通用接口的默认绑定?
- 15. 与NSSearchField的Laggy接口通过绑定连接到一个NSArrayController
- 16. 使用Ninject绑定超级接口到子接口
- 17. 如何使用android数据绑定来绑定一个接口?
- 18. 可能将接口绑定到特定类中的类型?
- 19. 错误:(E107)将接口绑定到端口失败:接口已绑定到端口:端口'MC8051_ALU()。AM.port_27'(sc_in)
- 20. FTP绑定到特定的接口
- 21. 将NSURLConnection绑定到特定接口
- 22. 通用接口
- 23. 通用接口
- 24. Java通用语法与可比接口
- 25. 是否可以使用Ninject约定绑定已存在的接口使用显式绑定?
- 26. 如何接收可可绑定值已更改的通知?
- 27. 通过可可绑定连接字典与字典
- 28. 在通用接口中使用接口
- 29. Guice:通过动态代理创建实例的绑定接口
- 30. 在GWT中通过延迟绑定实例化一个接口?
不直接回答这个问题,因为'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