如何将DataGridViewComboboxColumn添加到Datagrid

时间:2019-09-02 13:12:10

标签: c# wpf datatable datagrid

我正在创建一个表视图,其中提供了一些信息,用户有机会添加在组合框中找到的一些其他信息。

添加普通文本字段没有问题。但是,当我尝试添加“组合框”列时,出现以下错误:

  

错误CS1503参数1:无法从>'System.Windows.Forms.DataGridViewComboBoxColumn'转换为>'System.Data.DataColumn'测试C:\ Users \ TomekJasinski \ Documents> \ Hello_world \ test \ test \ Window1.xaml .cs 52有效

private void populateGrid(List<String> str) 
{

     DataTable table = new DataTable();

     DataColumn xCord = new DataColumn("X Cord", typeof(string));
     DataColumn yCord = new DataColumn("Y Cord", typeof(string));
     DataColumn rotation = new DataColumn("Rotation", typeof(string));
     DataColumn partRef = new DataColumn("Part Reference", typeof(string));
     DataColumn partNumb = new DataColumn("Part Number", typeof(string));

     table.Columns.Add(xCord);
     table.Columns.Add(yCord);
     table.Columns.Add(rotation);
     table.Columns.Add(partRef);
     table.Columns.Add(partNumb);

     DataGridViewComboBoxColumn dgvCmb = new DataGridViewComboBoxColumn();
     dgvCmb.HeaderText = "Name";
     dgvCmb.Items.Add("Ghanashyam");
     dgvCmb.Items.Add("Jignesh");
     dgvCmb.Items.Add("Ishver");
     dgvCmb.Items.Add("Anand");
     dgvCmb.Name = "cbColumn";
     table.Columns.Add(dgvCmb); // <- Error

     foreach (string current in str)
     {
           string[] temp = current.Split(Convert.ToChar(","));
           DataRow row = table.NewRow();
           row[0] = temp[0];
           row[1] = temp[1];
           row[2] = temp[2];
           row[3] = temp[3];
           row[4] = temp[4];

           table.Rows.Add(row);
      }
      dataGrid.ItemsSource = table.DefaultView;
}

1 个答案:

答案 0 :(得分:2)

您应将System.Windows.Controls.DataGricComboBoxColumn添加到DataGrid

DataGridComboBoxColumn dgvCmb = new DataGridComboBoxColumn();
dgvCmb.ItemsSource = new List<string>
{
    "Ghanashyam",
    "Jignesh",
    "Ishver",
    "Anand"
};
dataGrid.Columns.Add(dgvCmb);

WPF不是Windows窗体。在WPF中,通常会在XAML中定义UI元素。

相关问题