DataGrid.DataSource 속성

정의

표에 표시되는 데이터의 대상 데이터 소스를 가져오거나 설정합니다.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); };
public object DataSource { get; set; }
[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
[<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
Public Property DataSource As Object

속성 값

Object

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

특성

예제

다음 코드 예제에서는를 설정 하 고 필요한 경우를 설정 하 여을 DataSource DataMember System.Windows.Forms.DataGrid 및 모두에 바인딩하는 DataView 방법을 보여 줍니다 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. 또한이 예제에서는에서 데이터 원본을 반환 하는 방법을 보여 줍니다 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 및 속성을 설정 DataSource DataMember 합니다.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. 예를 DataSource 들어,가 이거나, DataSet DataViewManager 및 라는 3 개의 테이블을 포함 하는 경우에는 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.

를에 바인딩할 수도 있습니다 DataGrid ArrayList .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 MappingName 의을 DataGridTableStyle "ArrayList" (형식 이름)로 설정 합니다.When binding to an ArrayList, set the MappingName of the DataGridTableStyle to "ArrayList" (the type name).

적용 대상

추가 정보