如何创建 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
Easycomplete Datagridviewcombobox 列 winforms
在 DataGridViewComboBox 下拉列表中设置特定项目的颜色