Поделиться через


DataGrid.DataSource Свойство

Определение

Получает или задает источник, данные для которого отображаются в сетке.

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

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

Объект, выполняющий функции источника данных.

Атрибуты

Примеры

В следующем примере кода показано, DataMemberкак задать DataSource, а при необходимости — для привязки System.Windows.Forms.DataGrid к DataView и DataSet. В примере также показано, как возвращать источники данных из 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 .

Допустимы следующие источники данных:

Дополнительные сведения об источниках Binding данных см. в обзоре класса.

DataSource Если ссылка содержит несколько таблиц, необходимо задать DataMember для свойства строку, указывающую таблицу для привязки. Например, если DataSource является DataSet или DataViewManager содержит три таблицы с именами Customers, Ordersи OrderDetails, необходимо указать таблицу для привязки.

DataSource Установка объекта, который не реализует IList интерфейс или IListSource , приведет к тому, что сетка вызовет исключение.

Вы можете создать сетку, которая позволяет пользователям изменять данные, но не позволяет им добавлять новые строки, используя DataView в качестве источника данных и задав свойству AddNew значение false.

Чтобы привязать DataGrid к строго типизированному массиву объектов, тип объекта должен содержать открытые свойства. Чтобы создать объект , отображающий DataGridTableStyle массив, присвойте свойству DataGridTableStyle.MappingNametypename значение , где typename заменяется именем типа объекта. Также обратите внимание, что в свойстве MappingName учитывается регистр; имя типа должно быть точно совпадать. Пример см. в MappingName свойстве .

Можно также привязать DataGrid к ArrayList. Особенность заключается в ArrayList том, что он может содержать объекты нескольких типов, но DataGrid может привязаться к такому списку только в том случае, если все элементы в списке имеют тот же тип, что и первый элемент. Это означает, что все объекты должны быть одного типа или наследоваться от того же класса, что и первый элемент в списке. Например, если первым элементом в списке является , вторым элементом Controlможет быть TextBox (который наследуется от Control). Если, с другой стороны, первым элементом TextBoxявляется , второй объект не может быть Control. Кроме того, при привязке ArrayList в объекте должны быть элементы. ArrayList Пустое приведет к пустой сетке. Кроме того, объекты в должны содержать открытые ArrayList свойства. При привязке ArrayListк свойству присвойте MappingName свойству DataGridTableStyle значение ArrayList (имя типа).

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

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