c#中的可绑定对象?
是什么使一个对象在.net中是可绑定的 我有一次被回答是Ienumerable类使它可以绑定 但是,当我查看DataTAble(System.Data)时,它并没有实现Ienumerable:c#中的可绑定对象?,c#,.net,.net-4.0,C#,.net,.net 4.0,是什么使一个对象在.net中是可绑定的 我有一次被回答是Ienumerable类使它可以绑定 但是,当我查看DataTAble(System.Data)时,它并没有实现Ienumerable: public class DataTable : MarshalByValueComponent, IListSource, ISupportInitializeNotification,
public class DataTable : MarshalByValueComponent,
IListSource,
ISupportInitializeNotification,
ISupportInitialize,
ISerializable,
IXmlSerializable
{...}
我们仍然可以写:
myObj.DataSource=myDataTable;
myObj.Bind();
帮助?来自MSDN
DataGridView类支持标准的Windows窗体数据绑定模型。这意味着数据源可以是实现以下接口之一的任何类型:
IList接口,包括一维数组
IListSource接口,例如DataTable和DataSet类
IBindingList接口,例如BindingList类
IBindingListView接口,例如BindingSource类
DataTable
通过提供DataTable.DefaultView
DataView
实现了IBindingList
这是绑定目标实际使用的hmm,据我所知,任何对象都可以绑定到WPF绑定。
但默认情况下不会通知值的更改,它必须实现INPC、INCC。。
对于winforms来说,情况非常不同。
因此,这实际上取决于您具体询问的绑定类型。对于WPF(但我相信对于Winfroms也是如此),绑定系统只查看任何.Net对象上的公共属性,并将其用于绑定。没有要实现的特殊接口(除非您想要通知您实现的更改INotifyPropertChanged。它是
行
属性(DataRowCollection
类)继承自InternalDataCollectionBase
,它实现了ICollection,IEnumerable
@TimSchmelter,但我绑定到Datatable对象…而不是它的Rows属性。Ilist实现了IEnumerable,也实现了IBindingList…我在寻找基本条件。但我没有调用DefaultViewRight——这就是我的全部要点ListSource接口。它允许实现者指定不同于自身的列表源。因此,当您为数据绑定组件提供DataTable时,该组件使用IListSource请求实际列表。DataTable然后返回DataTable.DefaultViews,因此它与ienumerable无关?IListSource允许非IList对象指定不同的列表它基本上充当“真实”列表的代理。DataTable通过使用其DefaultView来实现这一点