DataGrid.DataSource DataGrid.DataSource DataGrid.DataSource DataGrid.DataSource Property

정의

표에 표시되는 데이터의 대상 데이터 소스를 가져오거나 설정합니다.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

속성 값

데이터 소스로 작동하는 개체입니다.An object that functions as a data source.

예제

다음 코드 예제를 설정 하는 방법을 보여 줍니다 합니다 DataSource, 고 필요한 경우는 DataMember, 바인딩할를 System.Windows.Forms.DataGrid 둘 다에 DataViewDataSet합니다.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. 또한이 예에서는 데이터 원본에서 반환 하는 방법의 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

설명

런타임 시 사용 하 여는 SetDataBinding 설정 하는 메서드를 DataSourceDataMember 속성.At run time, use the SetDataBinding method to set the DataSource and DataMember properties.

다음 데이터 소스는 유효 합니다.The following data sources are valid:

참조 된 Binding 데이터 원본에 대 한 자세한 내용은 클래스 개요입니다.See the Binding class overview for more information on data sources.

경우는 DataSource 둘 이상의 테이블을 포함 하는 참조를 설정 해야 합니다는 DataMember 바인딩할 테이블을 지정 하는 문자열 속성입니다.If the DataSource reference contains more than one table, you must set the DataMember property a string that specifies the table to bind to. 예를 들어 경우는 DataSourceDataSet 또는 DataViewManager 라는 세 개의 테이블을 포함 하는 Customers, Orders, 및 OrderDetails를 바인딩할 테이블을 지정 해야 합니다.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.

설정 합니다 DataSource 구현 하지 않는 개체에는 IList 인터페이스 또는 IListSource 표에 예외를 throw 하면 합니다.Setting the DataSource to an object that does not implement the IList interface or an IListSource will cause the grid to throw an exception.

사용자가 데이터를 편집할 수 있도록 하지만 사용 하 여 새 행 추가를 차단 하는 표를 만들 수 있습니다는 DataView 데이터 원본으로 설정 합니다 AddNew 속성을 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.

바인딩하는 DataGrid 개체 유형 개체의 강력한 형식화 된 배열에 public 속성을 포함 해야 합니다.To bind the DataGrid to a strongly typed array of objects, the object type must contain public properties. 만들려면를 DataGridTableStyle 배열을 표시 하는, 설정 합니다 DataGridTableStyle.MappingName 속성을 typename 여기서 typename 개체 유형의 이름으로 바뀝니다.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. 또한는 MappingName 속성이 대/소문자 구분은 형식 이름을 정확 하 게 일치 해야 합니다.Also note that the MappingName property is case-sensitive; the type name must be matched exactly. 참조 된 MappingName 예제에 대 한 속성입니다.See the MappingName property for an example.

바인딩할 수도 있습니다는 DataGridArrayList합니다.You can also bind the DataGrid to an ArrayList. 기능을 ArrayList 여러 형식의 개체를 포함할 수는 있지만 DataGrid 목록의 모든 항목이 첫 번째 항목으로 같은 종류의 경우 이러한 목록에만 바인딩할 수 있습니다.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. 즉, 동일한 형식의 모든 개체 여야 하거나 목록에서 첫 번째 항목으로 동일한 클래스에서 상속 해야 합니다.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. 예를 들어 목록의 첫 번째 항목을 Control, 두 번째 항목 수를 TextBox (에서 상속 하는 Control).For example, if the first item in a list is a Control, the second item could be a TextBox (which inherits from Control). 반면에 첫 번째 항목은는 TextBox, 두 번째 개체 일 수 없습니다는 Control합니다.If, on the other hand, the first item is a TextBox, the second object cannot be a Control. 또한는 ArrayList 바인딩될 때에 항목이 있어야 합니다.Further, the ArrayList must have items in it when it is bound. ArrayList 빈 그리드가 발생 합니다.An empty ArrayList will result in an empty grid. 또한 개체는 ArrayList 공용 속성을 포함 해야 합니다.In addition, the objects in the ArrayList must contain public properties. 바인딩할 때를 ArrayList설정 합니다 MappingNameDataGridTableStyle "arraylist" (형식 이름).When binding to an ArrayList, set the MappingName of the DataGridTableStyle to "ArrayList" (the type name).

적용 대상

추가 정보