DataGrid.DataSource Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví zdroj dat, pro který mřížka zobrazuje data.
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
Hodnota vlastnosti
Objekt, který funguje jako zdroj dat.
- Atributy
Příklady
Následující příklad kódu ukazuje, jak nastavit DataSource, a v případě potřeby , DataMember, vytvořit vazbu System.Windows.Forms.DataGrid k a DataView a DataSet. Příklad také ukazuje, jak vrátit zdroje dat z objektu 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
Poznámky
V době běhu použijte metodu SetDataBinding k nastavení DataSource a DataMember vlastností.
Platné jsou následující zdroje dat:
Provede DataTable.
Provede DataView.
Provede DataSet.
Provede DataViewManager.
Jakákoli komponenta, která implementuje IListSource rozhraní
Jakákoli komponenta, která implementuje IList rozhraní
Další informace o zdrojích dat najdete v přehledu Binding třídy.
DataSource Pokud odkaz obsahuje více než jednu tabulku, je nutné nastavit DataMember vlastnost řetězec, který určuje tabulku, na kterou se má vytvořit vazba. Pokud DataSource je například tabulka DataSet nebo DataViewManager která obsahuje tři tabulky s názvem Customers
, Orders
a OrderDetails
musíte zadat tabulku, na kterou se má vytvořit vazba.
DataSource Nastavení objektu, který neimplementuje IList rozhraní, nebo IListSource způsobí, že mřížka vyvolá výjimku.
Můžete vytvořit mřížku, která uživatelům umožňuje upravovat data, ale brání jim v přidávání nových řádků pomocí DataView zdroje dat a nastavením AddNew vlastnosti na false
.
Chcete-li vytvořit vazbu DataGrid na pole objektů silného typu, musí typ objektu obsahovat veřejné vlastnosti. Chcete-li vytvořit DataGridTableStyle , který zobrazí pole, nastavte DataGridTableStyle.MappingName vlastnost na typename
místo, kde typename
je nahrazen názvem typu objektu. Všimněte si také, že vlastnost MappingName rozlišuje malá a velká písmena. Název typu se musí přesně shodovat. Podívejte se na MappingName vlastnost příkladu.
Můžete také svázat DataGrid s .ArrayList Funkce ArrayList je, že může obsahovat objekty více typů, ale může DataGrid s tímto seznamem svázat pouze tehdy, když jsou všechny položky v seznamu stejného typu jako první položka. To znamená, že všechny objekty musí být buď stejného typu, nebo musí dědit ze stejné třídy jako první položka v seznamu. Pokud je například první položka v seznamu, Controlmůže být druhá položka ( TextBox která dědí z Control). Pokud je na druhé straně první položka , TextBoxdruhý objekt nemůže být Control. ArrayList Kromě toho musí obsahovat položky, které jsou v něm vázány. Prázdné ArrayList bude mít za následek prázdnou mřížku. Kromě toho musí objekty v objektu ArrayList obsahovat veřejné vlastnosti. Při vazbě k objektu ArrayListDataGridTableStyle , nastavte MappingName hodnotu ArrayList (název typu).