DataGrid.DataSource Eigenschaft

Definition

Ruft die Datenquelle ab, für die Daten im Datenblatt angezeigt werden, oder legt diese fest.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); };
[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
Public Property DataSource As Object

Eigenschaftswert

Ein Objekt, das als Datenquelle dient.An object that functions as a data source.

Attribute

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie Sie die DataSource und ggf. DataMember festlegen, um eine System.Windows.Forms.DataGrid an eine DataView und eine DataSet zu binden.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. Das Beispiel zeigt auch, wie Datenquellen aus dem System.Windows.Forms.DataGrid zurückgegeben werden.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

Hinweise

Verwenden Sie zur Laufzeit die SetDataBinding-Methode, um die Eigenschaften DataSource und DataMember festzulegen.At run time, use the SetDataBinding method to set the DataSource and DataMember properties.

Die folgenden Datenquellen sind gültig:The following data sources are valid:

Weitere Informationen zu Datenquellen finden Sie in der Übersicht über die Binding-Klasse.See the Binding class overview for more information on data sources.

Wenn der DataSource-Verweis mehr als eine Tabelle enthält, müssen Sie die DataMember-Eigenschaft auf eine Zeichenfolge festlegen, die die Tabelle angibt, an die die Bindung erfolgen soll.If the DataSource reference contains more than one table, you must set the DataMember property a string that specifies the table to bind to. Wenn die DataSource beispielsweise ein DataSet oder DataViewManager ist, das drei Tabellen mit den Namen Customers, Orders und OrderDetails enthält, müssen Sie die Tabelle angeben, an die die Bindung erfolgen soll.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.

Wenn Sie die DataSource auf ein Objekt festlegen, das die IList-Schnittstelle oder eine IListSource nicht implementiert, bewirkt das Raster, dass eine Ausnahme ausgelöst wird.Setting the DataSource to an object that does not implement the IList interface or an IListSource will cause the grid to throw an exception.

Sie können ein Raster erstellen, das es Benutzern ermöglicht, Daten zu bearbeiten, aber verhindert, dass Sie neue Zeilen hinzufügen, indem Sie einen DataView als Datenquelle verwenden und die AddNew-Eigenschaft auf false festlegen.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.

Um die DataGrid an ein stark typisiertes Array von-Objekten zu binden, muss der Objekttyp öffentliche Eigenschaften enthalten.To bind the DataGrid to a strongly typed array of objects, the object type must contain public properties. Zum Erstellen eines DataGridTableStyle, das das Array anzeigt, legen Sie die Eigenschaft DataGridTableStyle.MappingName auf typename fest, wobei typename durch den Namen des Objekt Typs ersetzt wird.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. Beachten Sie außerdem, dass die MappingName-Eigenschaft die Groß-/Kleinschreibung beachtet. der Typname muss exakt abgeglichen werden.Also note that the MappingName property is case-sensitive; the type name must be matched exactly. Ein Beispiel finden Sie in der MappingName-Eigenschaft.See the MappingName property for an example.

Sie können die DataGrid auch an einen ArrayList binden.You can also bind the DataGrid to an ArrayList. Eine Funktion des ArrayList ist, dass Sie Objekte mehrerer Typen enthalten kann, aber DataGrid kann nur an eine solche Liste gebunden werden, wenn alle Elemente in der Liste denselben Typ wie das erste Element aufweisen.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. Dies bedeutet, dass alle Objekte denselben Typ aufweisen müssen oder von derselben Klasse erben müssen wie das erste Element in der Liste.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. Wenn das erste Element in einer Liste beispielsweise ein Control ist, kann das zweite Element ein TextBox (das von Control erbt) sein.For example, if the first item in a list is a Control, the second item could be a TextBox (which inherits from Control). Wenn andererseits das erste Element ein TextBox ist, kann das zweite Objekt kein Control sein.If, on the other hand, the first item is a TextBox, the second object cannot be a Control. Außerdem müssen die ArrayList Elemente enthalten, wenn Sie gebunden ist.Further, the ArrayList must have items in it when it is bound. Ein leeres ArrayList führt zu einem leeren Raster.An empty ArrayList will result in an empty grid. Außerdem müssen die Objekte in der ArrayList öffentliche Eigenschaften enthalten.In addition, the objects in the ArrayList must contain public properties. Legen Sie bei der Bindung an eine ArrayList den MappingName der DataGridTableStyle auf "ArrayList" (den Typnamen) fest.When binding to an ArrayList, set the MappingName of the DataGridTableStyle to "ArrayList" (the type name).

Gilt für:

Siehe auch