2011-03-08 72 views
0

嗨我已成功設法使數據網格與複選框,但我不知道如何獲得複選框的狀態它被選中或未選中。我被推薦使用INotifyPropertyChanged。 CellEditEnding事件處理程序的 。請幫助我,我不知道如何實現這些中的任何一個。獲取其他單元格的值DataGrid WPF

我想要的是,檢查用戶點擊選中/取消選中的複選框的值。並且可以獲得行索引以及該行的第一個單元格中的值。

到目前爲止我的代碼是

namespace embeddatagridcheckbox 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     List<checkedBoxIte> item = new List<checkedBoxIte>(); 
     public MainWindow() 
     { 
      InitializeComponent(); 
      for (int i = 0; i < 5; i++) 
      { 
       checkedBoxIte ite = new checkedBoxIte(); 
       ite.MyString = i.ToString(); 
       ite.MyBool = false; 
       item.Add(ite); 
      } 
      dataGrid1.ItemsSource = item; 
     } 
    } 

    public class checkedBoxIte 
    { 
     public string MyString { get; set; } 
     public bool MyBool { get; set; } 
    } 
} 

XML是

<DataGrid AutoGenerateColumns="False" Height="323" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" Width="503" BeginningEdit="dataGrid1_BeginningEdit"> 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="MyString" Binding="{Binding MyString}" /> 
       <DataGridCheckBoxColumn Header="MyBool" Binding="{Binding MyBool}" /> 
      </DataGrid.Columns> 
     </DataGrid> 
+0

INotifyPropertyChanged的的複選框值被使用。默認情況下,相反的更改(從用戶界面到代碼中的對象)將發揮作用。 – vorrtex 2011-03-08 20:22:21

回答

2

如果你想從引用複選框值?通常我會直接使用DataGrid的ItemSource對象,而不是查找行/列,但這取決於您正在嘗試執行的操作。

在你的榜樣,你會發現一個名爲後面的代碼list在列表中的複選框的狀態,因爲這是你的DataGrid綁定到。當你在C#代碼改變對象和要更新的接口

list[0] =第一行的數據

list[0].MyBool =第一行

相關問題