2014-01-29 4 views
0

В настоящее время я работаю над проектом, которому требуется определенное событие click на флажке в datagrid.Как обработать событие checkbox edit в datagrid

Все столбцы и строки создаются вручную. Последние столбцы DataGrid содержит checkboxs, и я хочу, чтобы проверить пользователей this.When Я собираюсь проверить коробку исключение: встречается,

Необработанное исключение типа «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). Если вам нужно событие click элемента управления флажка, я предлагаю вам добавить столбец шаблона вместо столбца Checkbox и добавить флажок в поле DataTemplate. Поднимите событие Click в этом и используйте его.

+0

Да, мы можем использовать это. Но это именно то, что я хочу. В любом случае, спасибо. –

+0

Если это поможет вам отметить как ответ, пожалуйста .. – Sankarann

Смежные вопросы