DataGrid.DataSource Свойство

Определение

Получает или задает источник, данные для которого отображаются в сетке.Gets or sets the data source that the grid is displaying data for.

public:
 property System::Object ^ DataSource { System::Object ^ get(); void set(System::Object ^ value); };
public object DataSource { get; set; }
[System.ComponentModel.TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public object DataSource { get; set; }
member this.DataSource : obj with get, set
[<System.ComponentModel.TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.DataSource : obj with get, set
Public Property DataSource As Object

Значение свойства

Object

Объект, выполняющий функции источника данных.An object that functions as a data source.

Атрибуты

Примеры

В следующем примере кода показано, как задать DataSource , и при необходимости, DataMember для привязки к System.Windows.Forms.DataGrid и к DataView DataSet .The following code example shows how to set the DataSource, and when needed, the DataMember, to bind a System.Windows.Forms.DataGrid to both a DataView and a DataSet. В примере также показано, как вернуть источники данных из System.Windows.Forms.DataGrid .The example also shows how to return data sources from the System.Windows.Forms.DataGrid.

private:
   void BindToDataView( DataGrid^ myGrid )
   {
      // Create a DataView using the DataTable.
      DataTable^ myTable = gcnew DataTable( "Suppliers" );
      // Insert code to create and populate columns.
      DataView^ myDataView = gcnew DataView( myTable );
      myGrid->DataSource = myDataView;
   }

   void BindToDataSet( DataGrid^ myGrid )
   {
      // Create a DataSet.
      DataSet^ myDataSet = gcnew DataSet( "myDataSet" );
      // Insert code to populate DataSet with several tables.
      myGrid->DataSource = myDataSet;
      // Use the DataMember property to specify the DataTable.
      myGrid->DataMember = "Suppliers";
   }

   DataView^ GetDataViewFromDataSource()
   {
      // Create a DataTable variable, and set it to the DataSource.
      DataView^ myDataView;
      myDataView = (DataView^)(dataGrid1->DataSource);
      return myDataView;
   }

   DataSet^ GetDataSetFromDataSource()
   {
      // Create a DataSet variable, and set it to the DataSource.
      DataSet^ myDataSet;
      myDataSet = (DataSet^)(dataGrid1->DataSource);
      return myDataSet;
   }
private void BindToDataView(DataGrid myGrid){
    // Create a DataView using the DataTable.
    DataTable myTable = new DataTable("Suppliers");
    // Insert code to create and populate columns.
    DataView myDataView = new DataView(myTable);
    myGrid.DataSource = myDataView;
 }
 private void BindToDataSet(DataGrid myGrid){
    // Create a DataSet.
    DataSet myDataSet = new DataSet("myDataSet");
    // Insert code to populate DataSet with several tables.
    myGrid.DataSource = myDataSet;
    // Use the DataMember property to specify the DataTable.
    myGrid.DataMember = "Suppliers";
 }
 private DataView GetDataViewFromDataSource(){
    // Create a DataTable variable, and set it to the DataSource.
    DataView myDataView;
    myDataView = (DataView) dataGrid1.DataSource;
    return myDataView;
 }
 private DataSet GetDataSetFromDataSource(){
    // Create a DataSet variable, and set it to the DataSource.
    DataSet myDataSet;
    myDataSet = (DataSet) dataGrid1.DataSource;
    return myDataSet;
 }

Private Sub BindToDataView(myGrid As DataGrid)
    ' Create a DataView using the DataTable.
    Dim myTable As New DataTable("Suppliers")
    ' Insert code to create and populate columns.
    Dim myDatatView As New DataView(myTable)
    myGrid.DataSource = myDatatView
End Sub

Private Sub BindToDataSet(myGrid As DataGrid)
    ' Create a DataSet.
    Dim myDataSet As New DataSet("myDataSet")
    ' Insert code to populate DataSet with several tables.
    myGrid.DataSource = myDataSet
    ' Use the DataMember property to specify the DataTable.
    myGrid.DataMember = "Suppliers"
End Sub

Private Function GetDataViewFromDataSource() As DataView
    ' Create a DataTable variable, and set it to the DataSource.
    Dim myDatatView As DataView
    myDatatView = CType(dataGrid1.DataSource, DataView)
    Return myDatatView
End Function 'GetDataViewFromDataSource

Private Function GetDataSetFromDataSource() As DataSet
    ' Create a DataSet variable, and set it to the DataSource.
    Dim myDataSet As DataSet
    myDataSet = CType(dataGrid1.DataSource, DataSet)
    Return myDataSet
End Function 'GetDataSetFromDataSource

Комментарии

Во время выполнения используйте метод, SetDataBinding чтобы задать DataSource DataMember Свойства и.At run time, use the SetDataBinding method to set the DataSource and DataMember properties.

Допустимы следующие источники данных:The following data sources are valid:

BindingДополнительные сведения об источниках данных см. в разделе Общие сведения о классе.See the Binding class overview for more information on data sources.

Если DataSource ссылка содержит более одной таблицы, необходимо задать DataMember свойству строку, указывающую таблицу для привязки.If the DataSource reference contains more than one table, you must set the DataMember property a string that specifies the table to bind to. Например, если имеет значение DataSource DataSet или DataViewManager , содержащее три таблицы с именами Customers , Orders и OrderDetails , необходимо указать таблицу для привязки.For example, if the DataSource is a DataSet or DataViewManager that contains three tables named Customers, Orders, and OrderDetails, you must specify the table to bind to.

Если задать DataSource для объекта, который не реализует интерфейс, IList IListSource то в сетке будет выдано исключение.Setting the DataSource to an object that does not implement the IList interface or an IListSource will cause the grid to throw an exception.

Можно создать сетку, которая позволяет пользователям изменять данные, но запрещает им добавлять новые строки, используя в DataView качестве источника данных и присвоив AddNew свойству значение false .You can create a grid that enables users to edit data but prevents them from adding new rows by using a DataView as the data source and setting the AddNew property to false.

Для привязки DataGrid к строго типизированному массиву объектов тип объекта должен содержать открытые свойства.To bind the DataGrid to a strongly typed array of objects, the object type must contain public properties. Чтобы создать объект DataGridTableStyle , отображающий массив, установите DataGridTableStyle.MappingName для свойства значение typename WHERE, которое typename заменяется именем типа объекта.To create a DataGridTableStyle that displays the array, set the DataGridTableStyle.MappingName property to typename where typename is replaced by the name of the object type. Также обратите внимание, что в MappingName свойстве учитывается регистр; имя типа должно точно совпадать.Also note that the MappingName property is case-sensitive; the type name must be matched exactly. Пример см MappingName . в свойстве.See the MappingName property for an example.

Можно также привязать DataGrid к ArrayList .You can also bind the DataGrid to an ArrayList. Функция в заключается в том ArrayList , что она может содержать объекты нескольких типов, но DataGrid может быть привязана только к такому списку, только если все элементы в списке имеют тот же тип, что и первый элемент.A feature of the ArrayList is that it can contain objects of multiple types, but the DataGrid can only bind to such a list when all items in the list are of the same type as the first item. Это означает, что все объекты должны быть одного типа или наследоваться от того же класса, что и первый элемент в списке.This means that all objects must either be of the same type, or they must inherit from the same class as the first item in the list. Например, если первый элемент в списке — Control , то второй элемент может быть объектом TextBox (который наследуется от Control ).For example, if the first item in a list is a Control, the second item could be a TextBox (which inherits from Control). Если, с другой стороны, первый элемент — TextBox , второй объект не может быть Control .If, on the other hand, the first item is a TextBox, the second object cannot be a Control. Кроме того, элемент ArrayList должен содержать в нем элементы при его привязке.Further, the ArrayList must have items in it when it is bound. Пустая ArrayList Сетка приведет к пустой сетке.An empty ArrayList will result in an empty grid. Кроме того, объекты в ArrayList должны содержать открытые свойства.In addition, the objects in the ArrayList must contain public properties. При привязке к ArrayList присвойте свойству значение MappingName DataGridTableStyle ArrayList (имя типа).When binding to an ArrayList, set the MappingName of the DataGridTableStyle to "ArrayList" (the type name).

Применяется к

См. также раздел