Freigeben über


DataGrid.DataSource Eigenschaft

Definition

Ruft die Datenquelle ab, für die Daten im Datenblatt angezeigt werden, oder legt diese fest.

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

Eigenschaftswert

Ein Objekt, das als Datenquelle dient.

Attribute

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie Sie die DataSource- und bei Bedarf - festlegen DataMember, um einen System.Windows.Forms.DataGrid an und DataView einen DataSetzu binden. Das Beispiel zeigt auch, wie Datenquellen von zurückgegeben System.Windows.Forms.DataGridwerden.

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

Hinweise

Verwenden Sie zur Laufzeit die SetDataBinding -Methode, um die DataSource Eigenschaften und DataMember festzulegen.

Die folgenden Datenquellen sind gültig:

Weitere Informationen zu Datenquellen finden Sie in der Binding Klassenübersicht.

Wenn der DataSource Verweis mehr als eine Tabelle enthält, müssen Sie für die DataMember Eigenschaft eine Zeichenfolge festlegen, die die Tabelle angibt, an die gebunden werden soll. Wenn z. B. ein DataSourceDataSet oder DataViewManager ist, das drei Tabellen mit den Namen Customers, Ordersund OrderDetailsenthält, müssen Sie die Tabelle angeben, an die gebunden werden soll.

Das Festlegen von DataSource auf ein Objekt, das die IList Schnittstelle oder ein IListSource nicht implementiert, führt dazu, dass das Raster eine Ausnahme auslöst.

Sie können ein Raster erstellen, das Benutzern das Bearbeiten von Daten ermöglicht, aber verhindert, dass sie neue Zeilen hinzufügen, indem Sie eine DataView als Datenquelle verwenden und die AddNew -Eigenschaft auf falsefestlegen.

Um das DataGrid Objekt an ein stark typisiertes Array von Objekten zu binden, muss der Objekttyp öffentliche Eigenschaften enthalten. Um ein DataGridTableStyle zu erstellen, das das Array anzeigt, legen Sie die DataGridTableStyle.MappingName -Eigenschaft auf fest, wobei typenametypename durch den Namen des Objekttyps ersetzt wird. Beachten Sie außerdem, dass bei der Eigenschaft die MappingName Groß-/Kleinschreibung beachtet wird. Der Typname muss genau übereinstimmen. Ein Beispiel finden Sie in der MappingName -Eigenschaft.

Sie können den DataGrid auch an einen ArrayListbinden. Ein Feature von ArrayList ist, dass es Objekte mit mehreren Typen enthalten kann, aber nur DataGrid dann an eine solche Liste gebunden werden kann, wenn alle Elemente in der Liste vom gleichen Typ wie das erste Element sind. Dies bedeutet, dass alle Objekte entweder vom gleichen Typ sein müssen oder von derselben Klasse wie das erste Element in der Liste erben müssen. Wenn das erste Element in einer Liste beispielsweise ein Controlist, könnte das zweite Element ein TextBox sein (das von Controlerbt). Wenn das erste Element hingegen ein TextBoxist, kann das zweite Objekt kein sein Control. Darüber hinaus muss das ArrayList Elemente enthalten, wenn es gebunden ist. Ein leeres ArrayList Raster führt zu einem leeren Raster. Darüber hinaus müssen die Objekte in der ArrayList öffentliche Eigenschaften enthalten. Legen Sie beim MappingNameDataGridTableStyle Binden an einen ArrayListvon auf "ArrayList" (den Typnamen) fest.

Gilt für:

Weitere Informationen