2014-01-29 48 views
0

我目前正在處理數據網格中複選框上需要點擊事件的項目。如何處理數據網格中的複選框編輯事件

所有列和行都是手動生成的。數據網格的最後一列包含checkboxs,我希望用戶能夠檢查this.When我要去檢查異常occures箱:

「System.InvalidOperationException」類型的未處理的異常出現在PresentationFramework.dll

附加信息:'EditItem'不允許用於此視圖。

現在,是否需要單獨的單擊事件來處理單擊事件。

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#:

 /* 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 */ 
+0

你綁定CheckBox.IsChecked到Finich =「」...再想一想。 –

回答

2

一般來說,複選框有可能在其列(DataGridCheckBoxColumn)暴露選中和未選中的事件。如果您需要複選框控件的單擊事件,我建議您添加一個模板列而不是複選框列,並在DataTemplate中添加一個複選框。提高點擊事件,並利用它..

+0

是的,我們可以使用它。但這正是我想要的。不管怎樣,謝謝。 –

+0

如果這有助於您標記爲答案,請.. – Sankarann

相關問題