DataGrid.DataSource Propriedade

Definição

Obtém ou define a fonte de dados para a qual a grelha está a mostrar os 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 de Propriedade

Um objeto que funciona como fonte de dados.

Atributos

Exemplos

O exemplo de código seguinte mostra como definir o DataSource e, quando necessário, o DataMember, para associar um System.Windows.Forms.DataGrid tanto a um DataView como a um DataSet. O exemplo também mostra como devolver 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

Observações

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:

Consulte a Binding visão geral da aula para mais informações sobre fontes de dados.

Se a DataSource referência contiver mais do que uma tabela, deve definir a DataMember propriedade como uma cadeia que especifica a tabela a que se deve vincular. Por exemplo, se for DataSource um DataSet ou DataViewManager que contiver três tabelas chamadas Customers, Orders, e OrderDetails, deve especificar a tabela a que se deve ligar.

Definir o DataSource para um objeto que não implementa a IList interface ou um IListSource fará com que a grelha lance uma exceção.

Pode criar uma grelha que permita aos utilizadores editar dados, mas que os impeça de adicionar novas linhas, usando a DataView como fonte de dados e definindo a AddNew() propriedade para false.

Para associar o DataGrid a um array fortemente tipado de objetos, o tipo de objeto deve conter propriedades públicas. Para criar um DataGridTableStyle que mostre o array, defina a DataGridTableStyle.MappingName propriedade para typename onde typename é substituída pelo nome do tipo de objeto. Note também que a MappingName propriedade é distinta a maiúsculas e minúsculas; o nome do tipo deve ser correspondido exatamente. Veja a MappingName propriedade para um exemplo.

Também pode associar o DataGrid a um ArrayList. Uma característica do ArrayList é que pode conter objetos de vários tipos, mas DataGrid só pode ser ligado a tal lista quando todos os itens da lista forem do mesmo tipo que o primeiro. Isto 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 numa lista for um Control, o segundo item pode ser um TextBox (que herda de Control). Se, por outro lado, o primeiro item for um TextBox, o segundo objeto não pode ser um Control. Além disso, deve ArrayList ter itens quando está encadernado. Um vazio ArrayList resultará numa grelha vazia. Além disso, os objetos no ArrayList devem conter propriedades públicas. Ao ligar a um ArrayList, defina o MappingName de para DataGridTableStyle "ArrayList" (o nome do tipo).

Aplica-se a

Ver também