Использование DataSet с DataGridView и изменение DataGridViewColumn - PullRequest
1 голос
/ 13 декабря 2010

Как мне изменить DataGridViewColumn в DataGridView при использовании DataGridView.DataSource = DataSet.Table?

OleDbConnection connection = new OleDbConnection(...);
OleDbDataAdapter adpCustomer = new OleDbDataAdapter(..);
DataSet dsCustomer = new DataSet();
adpCustomer.Fill(dsCustomer, "customer");
DataGridView dgv = new DataGridView();
dgv.DataSource = dsCustomer.Tables[0];

// TODO: modify columns to use combobox, checkbox etc.. how?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2010

Вы не можете изменять столбцы. Если вы хотите ComboBoxColumn, вам нужно добавить его в DataGridView раньше. Добавьте столбец со списком, прежде чем связать и установить его DataPropertyName, чтобы сетка связывала правильные данные с этим столбцом вместо создания нового.

Другой способ сделать это - по возможности использовать DataSet со строгим типом, поскольку он автоматически создаст CheckBoxColumns для ваших столбцов bool и т. Д. *

0 голосов
/ 13 декабря 2010

Используйте событие AutoGeneratingColumn решетки данных.Это даст вам указатель на создаваемый столбец, и вы сможете изменить столбец по мере необходимости.Ниже код прямо из файла справки VS2010:

Private Sub DG1_AutoGeneratingColumn(ByVal sender As Object, ByVal e As DataGridAutoGeneratingColumnEventArgs)
    Dim headername As String = e.Column.Header.ToString()
        If headername = "FirstName" Then
        e.Column.Header = "First Name"
    End If
End Sub
...