Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何创建DataGridViewComboxCell并将其添加到dataGrid_C#_Wpf_Datagrid_Datagridviewcombobox - Fatal编程技术网

C# 如何创建DataGridViewComboxCell并将其添加到dataGrid

C# 如何创建DataGridViewComboxCell并将其添加到dataGrid,c#,wpf,datagrid,datagridviewcombobox,C#,Wpf,Datagrid,Datagridviewcombobox,我正在尝试创建一个WPF应用程序。在我的应用程序中,我想在dataGrid的3行中添加一个ComboboxCell 我可以使用以下代码在C#窗口应用程序中完成此操作: public partial class Form1 : Form { public Form1() { InitializeComponent(); for (int i = 1; i < 13; i++) {

我正在尝试创建一个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";
         }
    }
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
对于(int i=1;i<13;i++)
{
dataGridView1.Columns.Add(“Slot”+i,“Slot”+i);
}
对于(int i=0;i<18;i++)
{
dataGridView1.Rows.Add();
}GridBaseCells();
}
DataGridViewComboBoxCell ModeCell=新DataGridViewComboxCell();
字符串[]模式={“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“A”、“B”、“C”、“D”、“E”、“F”};
void GridBaseCells()
{
ModeCell.Items.AddRange(ModeAr);
对于(int i=2;i<14;i++)
{
dataGridView1[i,3]=(DataGridViewComboxCell)ModeCell.Clone();
dataGridView1[i,3].Value=“C”;
}
}
}
我正在尝试使用WPF实现同样的功能。但是我不能这样做(我找不到DataGridViewComboxCell)

我该怎么做


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

好的,所以我希望你愿意自己做一些工作。。。你会有很多事情要做。WPF与WinForms非常不同,因此不能从WinForms代码开始。你必须用一种完全不同的工作方式来思考问题。在WPF中,我们使用的是数据元素,而不是UI元素

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

<DataGrid ItemsSource="{Binding YourItems}" />
然后,
INotifyPropertyChanged
界面将为您更新UI。这是你的基本答案

我不想在这里教你所有的WPF,我更愿意为你指出一些非常有用的在线资源,让你更好地了解什么是可能的以及如何做到这一点:

来自WPF Tutorial.net
来自CodeProject


您不添加单元格,您添加行,但如果您以WPF的方式正确地执行此操作,那么您也不会添加行。。。您可以添加一个新的数据项,并让WPF为您呈现新行。有关数据绑定的帮助信息,请参见MSDN的页面。您确定您的问题与WPF相关吗?你的类为什么要扩展
表单
类???上面的代码是“C#Windows表单应用程序”。我正试图在C#WPF应用程序中实现同样的功能。哇!这是一条重要的信息,你不认为有必要在你的问题中提到这一点吗?
YourItems.Add(new YourItemClass());