如何创建 dataGridViewComboBoxCell 并将其添加到 dataGrid

Posted

技术标签:

【中文标题】如何创建 dataGridViewComboBoxCell 并将其添加到 dataGrid【英文标题】:How to create a dataGridViewComboBoxCell and add it to dataGrid 【发布时间】:2014-01-28 13:39:03 【问题描述】:

我正在尝试创建 WPF 应用程序。在我的应用程序中,我想在我的 dataGrid 的 3 行中添加一个 ComboboxCell。

我可以使用以下代码在 C# 窗口应用程序中执行此操作:

public partial class Form1 : Form

    public Form1()
    
           InitializeComponent();
           for (int i = 1; i < 13; i++)
           
                 dataGridView1.Columns.Add("Slot" + i, "Slot " + i);
           
           for (int i = 0; i < 18; i++) 
           
                dataGridView1.Rows.Add();
           GridBaseCells();
    
    DataGridViewComboBoxCell ModeCell  = new DataGridViewComboBoxCell();
    string[] Modes=  "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" ;
    void GridBaseCells()
    
         ModeCell.Items.AddRange(ModeAr);
         for (int i = 2; i < 14; i++)
         
              dataGridView1[i, 3] = (DataGridViewComboBoxCell)ModeCell.Clone();
              dataGridView1[i, 3].Value = "C";
         
    

我正在尝试使用 WPF 实现相同的功能。但我无法做到这一点(我找不到 DataGridViewComboBoxCell)。

我该怎么做?

(请举个例子。我是 WPF 新手,对绑定没有太多想法)。

【问题讨论】:

您不添加单元格,您添加行,但如果您以 WPF 方式正确执行此操作,那么您也不会添加行......您添加一个新数据项并让 WPF 为您呈现新行。请参阅 MSDN 的 Data Binding Overview 页面以获取有关数据 Binding 的帮助。 确定您的问题甚至与 WPF 有关吗?为什么你的类扩展Form类??? 上面的代码是'C# Windows Form Application'。我正在尝试在 C# WPF 应用程序中实现相同的功能。 哇!像这样的重要信息,您认为没有必要将其放在您的问题中? 【参考方案1】:

好的,所以我希望你愿意自己做一些工作......你会有很多要做。 WPF 非常与 WinForms 不同,因此您不能一开始就使用 WinForms 代码。你将不得不考虑一种非常不同的工作方式。在 WPF 中,我们使用 数据元素,而不是 UI 元素

我的意思是我们构建的类包含UI 中所需的所有属性实现INotifyPropertyChanged interface。然后,当我们在 UI 中声明这些类的集合时,我们只需将其数据绑定到集合控件的 ItemsSource 属性:

<DataGrid ItemsSource="Binding YourItems" />

DataGrid 将自动为您生成其列。所以要回答你的问题,我们需要做的就是向DataGrid 添加一个新行是在代码中向集合中添加一个新项目:

YourItems.Add(new YourItemClass());

INotifyPropertyChanged 界面将负责为您更新 UI。所以,这就是你的基本形式的答案。

与其尝试在这里向您教授所有 WPF,我更愿意向您指出一些非常有用的在线资源,以便您更好地了解可能的方法和方法:

来自 WPF Tutorial.net 的WPF DataGrid Control来自 CodeProject 的WPF DataGrid Practical Examples

【讨论】:

以上是关于如何创建 dataGridViewComboBoxCell 并将其添加到 dataGrid的主要内容,如果未能解决你的问题,请参考以下文章

如何从数据库 vb.net 将项目添加到 datagridviewcombobox

DataGridViewComboBox 索引更改事件故障

Easycomplete Datagridviewcombobox 列 winforms

在 DataGridViewComboBox 下拉列表中设置特定项目的颜色

datagridviewcombobox columns 依赖于另一列

将 DataGridViewComboBox 默认设置为等于现有 DataGridView 列