Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#中的可绑定对象?_C#_.net_.net 4.0 - Fatal编程技术网

c#中的可绑定对象?

c#中的可绑定对象?,c#,.net,.net-4.0,C#,.net,.net 4.0,是什么使一个对象在.net中是可绑定的 我有一次被回答是Ienumerable类使它可以绑定 但是,当我查看DataTAble(System.Data)时,它并没有实现Ienumerable: public class DataTable : MarshalByValueComponent, IListSource, ISupportInitializeNotification,

是什么使一个对象在.net中是可绑定的

我有一次被回答是Ienumerable类使它可以绑定

但是,当我查看DataTAble(System.Data)时,它并没有实现Ienumerable:

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来实现这一点