在运行时使用 SetDataBinding 方法来设置 DataSource 和 DataMember 属性。
下列数据源有效:
l DataTable
l DataView
l DataSet
l DataViewManager
l 任何实现 IListSource 接口的组件
l 任何实现 IList 接口的组件
如果 DataSource 引用包含的表不止一个,则必须向 DataMember 属性设置一个字符串,该字符串指定要绑定到的表。例如,如果 DataSource 为包含名为 Customers、Orders 和 OrderDetails 三个表的 DataSet 或 DataViewManager,则必须指定要绑定的表。
将 DataSource 设置为一个不实现 IList 接口的对象或者一个 IListSource 会导致网格发生异常。
通过将 DataView 用作数据源并将 AddNew 属性设置为 false,可以创建网格,该网格允许用户编辑数据但阻止他们添加新行。
要将 DataGrid 绑定到对象的强类型数组,该对象必须包含公共属性。要创建显示这类数组的 DataGridTableStyle,请将 MappingName 属性设置为 classname[],其中 classname 将被类名替换。另外还要注意 MappingName 属性须区分大小写。
也可以将 DataGrid 绑定到 ArrayList。ArrayList 的一个功能是它可以包含多种类型的对象,但当列表中的所有项与第一项具有相同的类型时,DataGrid 只能绑定到这类列表。这意味着所有的对象必须是同一种类型,或者必须从与列表中第一项相同的类继承。例如,如果列表中的第一项为 Control,则第二项可能为 TextBox(它从 Control 继承)。另一方面,如果第一项为 TextBox,则第二个对象就不可能是 Control。此外,ArrayList 在绑定时必须包含项目。空 ArrayList 会导致空网格。当绑定到 ArrayList 时,请将 DataGridTableStyle 的 MappingName 设置为“ArrayList”(类型名)。