Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.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

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# 如何处理datagrid中的复选框编辑事件_C#_Wpf_Checkbox_Datagrid_Click - Fatal编程技术网

C# 如何处理datagrid中的复选框编辑事件

C# 如何处理datagrid中的复选框编辑事件,c#,wpf,checkbox,datagrid,click,C#,Wpf,Checkbox,Datagrid,Click,我目前正在进行一个项目,该项目需要在datagrid中选中一些点击事件复选框 所有列和行都是手动生成的。datagrid的最后一列包含复选框,我希望用户选中此复选框。当我要选中此复选框时,会发生异常: PresentationFramework.dll中发生类型为“System.InvalidOperationException”的未处理异常 其他信息:此视图不允许使用“EditItem” 现在,是否需要任何单独的click事件来处理click事件 XAML: <DataGrid

我目前正在进行一个项目,该项目需要在datagrid中选中一些点击事件复选框

所有列和行都是手动生成的。datagrid的最后一列包含复选框,我希望用户选中此复选框。当我要选中此复选框时,会发生异常:

PresentationFramework.dll中发生类型为“System.InvalidOperationException”的未处理异常

其他信息:此视图不允许使用“EditItem”

现在,是否需要任何单独的click事件来处理click事件

XAML:

     <DataGrid x:Name="single_payment" HorizontalAlignment="Left" ColumnWidth="*" Margin="11,87,0,0" VerticalAlignment="Top" Height="134" Width="261" BorderThickness="0" AutoGenerateColumns="False"/>
C:


通常,复选框具有可能在其列DataGridCheckBoxColumn中公开的选中和未选中事件。如果您需要复选框控件的单击事件,我建议您添加一个模板列而不是复选框列,并在DataTemplate中添加一个复选框。在其中引发Click事件并加以利用

您正在绑定CheckBox.IsChecked到Finich=。。。再想一想。是的,我们可以用它。但那正是我想要的。无论如何,谢谢。
        /* setting columns */
        DataGridTextColumn c1 = new DataGridTextColumn();
        c1.Header = "#";
        //c1.IsReadOnly = true;
        c1.Width = 10;
        c1.Binding = new Binding("Num");
        single_payment.Columns.Add(c1);
        DataGridTextColumn c2 = new DataGridTextColumn();
        c2.Header = "Name";
        //c1.IsReadOnly = true;
        c2.Binding = new Binding("Start");
        single_payment.Columns.Add(c2);

        DataGridTextColumn c4 = new DataGridTextColumn();
        c4.Header = "Amount";
        //c4.IsReadOnly = true;
        c4.Binding = new Binding("Amt");
        single_payment.Columns.Add(c4);
        
        DataGridCheckBoxColumn c3 = new DataGridCheckBoxColumn();
        c3.Header = "Paid";
        //c3.IsReadOnly = false;
        c3.Binding = new Binding("Finich");
        single_payment.Columns.Add(c3);

        /* Set columns ends here */
        /*  set row  */
        try
        {
            dbconnection c = new dbconnection();
            c.cmd.CommandText = "SELECT * FROM purpose_master WHERE type='otp';";
            c.da.Fill(c.dt);
            if (c.dt.Rows.Count > 0)
            {
                for (int col = 0; col < c.dt.Rows.Count; col++)
                {
                    //MessageBox.Show(col.ToString());
                    single_payment.Items.Add(new Item() { Num = c.dt.Rows[col][0].ToString(), Start = c.dt.Rows[col][1].ToString(), Amt = c.dt.Rows[col][4].ToString(), Finich = "" });
                }
            }
            c.con.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        /*   set row end */