Partilhar via


DataGrid.DataSource Propriedade

Definição

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:

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, Orderse 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 falsecomo .

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).

Aplica-se a

Confira também