DataGrid.DataSource Propiedad

Definición

Obtiene o establece el origen de datos para el que muestra datos la cuadrícula.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 de propiedad

Objeto que funciona como un origen de datos.An object that functions as a data source.

Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo establecer el DataSourcey, cuando sea necesario, el DataMember, para enlazar un System.Windows.Forms.DataGrid a un DataView y un 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. En el ejemplo también se muestra cómo devolver los orígenes de datos de la 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

Comentarios

En tiempo de ejecución, utilice el método SetDataBinding para establecer las propiedades DataSource y DataMember.At run time, use the SetDataBinding method to set the DataSource and DataMember properties.

Los siguientes orígenes de datos son válidos:The following data sources are valid:

Vea la información general sobre la clase Binding para obtener más información sobre los orígenes de datos.See the Binding class overview for more information on data sources.

Si el DataSource referencia contiene más de una tabla, debe establecer la propiedad DataMember en una cadena que especifique la tabla a la que se va a enlazar.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 ejemplo, si el DataSource es un DataSet o DataViewManager que contiene tres tablas denominadas Customers, Ordersy OrderDetails, debe especificar la tabla a la que se va a enlazar.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.

Si se establece el DataSource en un objeto que no implementa la interfaz de IList o un IListSource, la cuadrícula producirá una excepción.Setting the DataSource to an object that does not implement the IList interface or an IListSource will cause the grid to throw an exception.

Puede crear una cuadrícula que permita a los usuarios editar datos pero les impide agregar nuevas filas utilizando un DataView como origen de datos y estableciendo la propiedad AddNew en 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 enlazar el DataGrid a una matriz fuertemente tipada de objetos, el tipo de objeto debe contener propiedades públicas.To bind the DataGrid to a strongly typed array of objects, the object type must contain public properties. Para crear una DataGridTableStyle que muestre la matriz, establezca la propiedad DataGridTableStyle.MappingName en typename donde typename se reemplaza por el nombre del 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. Tenga en cuenta también que la propiedad MappingName distingue entre mayúsculas y minúsculas; el nombre del tipo debe coincidir exactamente.Also note that the MappingName property is case-sensitive; the type name must be matched exactly. Vea la propiedad MappingName para obtener un ejemplo.See the MappingName property for an example.

También puede enlazar el DataGrid a un ArrayList.You can also bind the DataGrid to an ArrayList. Una característica del ArrayList es que puede contener objetos de varios tipos, pero el DataGrid solo se puede enlazar a dicha lista cuando todos los elementos de la lista son del mismo tipo que el primer elemento.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. Esto significa que todos los objetos deben ser del mismo tipo, o bien deben heredar de la misma clase que el primer elemento de la 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 ejemplo, si el primer elemento de una lista es un Control, el segundo elemento podría ser un TextBox (que se hereda 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). Por otro lado, si el primer elemento es un TextBox, el segundo objeto no puede ser un Control.If, on the other hand, the first item is a TextBox, the second object cannot be a Control. Además, el ArrayList debe tener elementos en él cuando esté enlazado.Further, the ArrayList must have items in it when it is bound. Una ArrayList vacía dará como resultado una cuadrícula vacía.An empty ArrayList will result in an empty grid. Además, los objetos de la ArrayList deben contener propiedades públicas.In addition, the objects in the ArrayList must contain public properties. Al enlazar a un ArrayList, establezca el MappingName de la DataGridTableStyle en "ArrayList" (el nombre de tipo).When binding to an ArrayList, set the MappingName of the DataGridTableStyle to "ArrayList" (the type name).

Se aplica a

Consulte también: