DataGrid.DataSource Propriedade

Definição

Obtém ou define a fonte de dados para a qual a grade está exibindo dados.Gets or sets the data source that the grid is displaying data for.

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; }
member this.DataSource : obj with get, set
Public Property DataSource As Object

Valor da propriedade

Um objeto que funciona como uma fonte de dados.An object that functions as a data source.

Atributos

Exemplos

O exemplo de código a seguir mostra como definir o DataSource e, quando necessário, o DataMember, para associar um System.Windows.Forms.DataGrid a um DataView e a um DataSet.The following code example shows how to set the DataSource, and when needed, the DataMember, to bind a System.Windows.Forms.DataGrid to both a DataView and a DataSet. O exemplo também mostra como retornar fontes de dados do System.Windows.Forms.DataGrid.The example also shows how to return data sources from the 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 método SetDataBinding para definir as propriedades DataSource e DataMember.At run time, use the SetDataBinding method to set the DataSource and DataMember properties.

As seguintes fontes de dados são válidas:The following data sources are valid:

Consulte a visão geral da classe Binding para obter mais informações sobre fontes de dados.See the Binding class overview for more information on data sources.

Se a referência DataSource contiver mais de uma tabela, você deverá definir a propriedade DataMember como uma cadeia de caracteres que especifica a tabela à qual associar.If the DataSource reference contains more than one table, you must set the DataMember property a string that specifies the table to bind to. Por exemplo, se o DataSource for um DataSet ou DataViewManager que contém três tabelas chamadas Customers, Orders e OrderDetails, você deverá especificar a tabela à qual associar.For example, if the DataSource is a DataSet or DataViewManager that contains three tables named Customers, Orders, and OrderDetails, you must specify the table to bind to.

Definir o DataSource como um objeto que não implementa a interface IList ou um IListSource fará com que a grade gere uma exceção.Setting the DataSource to an object that does not implement the IList interface or an IListSource will cause the grid to throw an exception.

Você pode criar uma grade que permite aos usuários editar dados, mas impede que eles adicionem novas linhas usando um DataView como a fonte de dados e definindo a propriedade AddNew como false.You can create a grid that enables users to edit data but prevents them from adding new rows by using a DataView as the data source and setting the AddNew property to false.

Para associar o DataGrid a uma matriz de objetos com rigidez de tipos, o tipo de objeto deve conter propriedades públicas.To bind the DataGrid to a strongly typed array of objects, the object type must contain public properties. Para criar um DataGridTableStyle que exibe a matriz, defina a propriedade DataGridTableStyle.MappingName como typename, em que typename é substituído pelo nome do tipo de objeto.To create a DataGridTableStyle that displays the array, set the DataGridTableStyle.MappingName property to typename where typename is replaced by the name of the object type. Observe também que a propriedade MappingName diferencia maiúsculas de minúsculas; o nome do tipo deve ser exatamente correspondido.Also note that the MappingName property is case-sensitive; the type name must be matched exactly. Consulte a propriedade MappingName para obter um exemplo.See the MappingName property for an example.

Você também pode associar o DataGrid a um ArrayList.You can also bind the DataGrid to an ArrayList. Um recurso do ArrayList é que ele pode conter objetos de vários tipos, mas o DataGrid só pode ser associado a uma lista quando todos os itens da lista são do mesmo tipo que o primeiro item.A feature of the ArrayList is that it can contain objects of multiple types, but the DataGrid can only bind to such a list when all items in the list are of the same type as the first item. Isso significa que todos os objetos devem ser do mesmo tipo ou devem herdar da mesma classe que o primeiro item da lista.This means that all objects must either be of the same type, or they must inherit from the same class as the first item in the list. Por exemplo, se o primeiro item em uma lista for um Control, o segundo item poderá ser um TextBox (que herda de Control).For example, if the first item in a list is a Control, the second item could be a TextBox (which inherits from Control). Se, por outro lado, o primeiro item for um TextBox, o segundo objeto não poderá ser um Control.If, on the other hand, the first item is a TextBox, the second object cannot be a Control. Além disso, o ArrayList deve ter itens quando ele estiver associado.Further, the ArrayList must have items in it when it is bound. Um ArrayList vazio resultará em uma grade vazia.An empty ArrayList will result in an empty grid. Além disso, os objetos no ArrayList devem conter propriedades públicas.In addition, the objects in the ArrayList must contain public properties. Ao associar a um ArrayList, defina o MappingName do DataGridTableStyle como "ArrayList" (o nome do tipo).When binding to an ArrayList, set the MappingName of the DataGridTableStyle to "ArrayList" (the type name).

Aplica-se a

Veja também