DataGrid.DataSource Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define a fonte de dados para a qual a grade está exibindo dados.
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
Valor da propriedade
Um objeto que funciona como uma fonte de dados.
- Atributos
Exemplos
O exemplo de código a seguir mostra como definir o DataSourcee, quando necessário, o DataMember, para associar um System.Windows.Forms.DataGrid a um DataView e um DataSet. O exemplo também mostra como retornar fontes de dados do 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
Comentários
Em tempo de execução, use o SetDataBinding método para definir as DataSource propriedades e DataMember .
As seguintes fontes de dados são válidas:
Um DataTable
Um DataView
Um DataSet
Qualquer componente que implemente a IListSource interface
Qualquer componente que implemente a IList interface
Consulte a visão geral da Binding classe para obter mais informações sobre fontes de dados.
Se a DataSource referência contiver mais de uma tabela, você deverá definir a DataMember propriedade como uma cadeia de caracteres que especifica a tabela a ser associada. Por exemplo, se o DataSource for um DataSet ou DataViewManager que contenha três tabelas chamadas Customers
, Orders
e OrderDetails
, você deverá especificar a tabela à qual associar.
Definir o DataSource como um objeto que não implementa a IList interface ou um IListSource fará com que a grade gere uma exceção.
Você pode criar uma grade que permite que os usuários editem dados, mas os impede de adicionar novas linhas usando um DataView como a fonte de dados e definindo a AddNew propriedade false
como .
Para associar o DataGrid a uma matriz fortemente tipada de objetos, o tipo de objeto deve conter propriedades públicas. Para criar um DataGridTableStyle que exibe a matriz, defina a DataGridTableStyle.MappingName propriedade como typename
onde typename
é substituída pelo nome do tipo de objeto. Observe também que a MappingName propriedade diferencia maiúsculas de minúsculas; o nome do tipo deve ser correspondido exatamente. Consulte a MappingName propriedade para obter um exemplo.
Você também pode associar o DataGrid a um ArrayList. Um recurso do ArrayList é que ele pode conter objetos de vários tipos, mas o DataGrid só pode se associar a essa lista quando todos os itens na lista são do mesmo tipo que o primeiro item. Isso significa que todos os objetos devem ser do mesmo tipo ou devem herdar da mesma classe que o primeiro item da lista. Por exemplo, se o primeiro item em uma lista for um Control, o segundo item poderá ser um TextBox (que herda de Control). Se, por outro lado, o primeiro item for um TextBox, o segundo objeto não poderá ser um Control. Além disso, o ArrayList deve ter itens quando está associado. Um vazio ArrayList resultará em uma grade vazia. Além disso, os objetos no ArrayList devem conter propriedades públicas. Ao associar a um ArrayList, defina o DataGridTableStyleMappingName do como "ArrayList" (o nome do tipo).