DataGrid.DataSource Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает источник данных, для котором отображается сетка.
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
Значение свойства
Объект, который работает в качестве источника данных.
- Атрибуты
Примеры
В следующем примере кода показано, как задать DataSourceи при необходимости привязывать объект для System.Windows.Forms.DataGrid привязки как к aDataView, DataMemberтак и к .DataSet В примере также показано, как возвращать источники данных из .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 свойств.
Допустимы следующие источники данных:
Один DataTable
Один DataView
Один DataSet
Один DataViewManager
Любой компонент, реализующий IListSource интерфейс
Любой компонент, реализующий IList интерфейс
Дополнительные сведения о источниках данных см. в обзоре Binding класса.
DataSource Если ссылка содержит несколько таблиц, необходимо задать DataMember свойство строкой, указывающей таблицу для привязки. Например, если DataSource это DataSet или DataViewManager содержит три таблицы с именем Customers, Ordersи OrderDetailsнеобходимо указать таблицу для привязки.
DataSource Установка объекта, который не реализует IList интерфейс или IListSource приведет к возникновению исключения сетки.
Вы можете создать сетку, которая позволяет пользователям изменять данные, но не позволяет им добавлять новые строки с помощью DataView источника данных и настройки AddNew() свойства false.
Чтобы привязать DataGrid к строго типизированному массиву объектов, тип объекта должен содержать общедоступные свойства. Чтобы создать DataGridTableStyle массив, задайте DataGridTableStyle.MappingName для свойства typename , в котором typename заменяется имя типа объекта. Также обратите внимание, что MappingName свойство учитывает регистр; имя типа должно совпадать точно. Пример см. в MappingName свойстве.
Вы также можете привязать к объекту DataGridArrayList. ArrayList Особенностью является то, что он может содержать объекты нескольких типов, но DataGrid может привязаться только к такому списку, если все элементы в списке имеют одинаковый тип, что и первый элемент. Это означает, что все объекты должны иметь один и тот же тип, или они должны наследоваться от того же класса, что и первый элемент в списке. Например, если первый элемент в списке является элементомControl, второй элемент может быть (TextBoxот которого наследуется).Control Если, с другой стороны, первый элемент является объектом TextBox, второй объект не может быть Control. Кроме того, ArrayList элементы должны быть в нем при привязке. Пустое ArrayList приведет к пустой сетке. Кроме того, объекты в объекте должны содержать общедоступные ArrayList свойства. При привязке к объекту ArrayListзадайте MappingNameDataGridTableStyle значение ArrayList (имя типа).