DataGrid.DataSource Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Eine DataTable
Eine DataView
Eine DataSet
Eine DataViewManager
Jede Komponente, die die IListSource Schnittstelle implementiert
Jede Komponente, die die IList Schnittstelle implementiert
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
, Orders
und OrderDetails
enthä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 false
festlegen.
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 typename
typename
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.