2011-03-07 48 views
5

嗨,我想在datagrid view.i中添加複選框,但已寫入測試代碼但失敗。 我想要做的是在datagrid中添加一個複選框,其中包含我添加到其中的項目 ,並選擇全部並選擇無選項。如何在Datagrid WPF中添加複選框c#

我不知道該怎麼做,所以我需要一些幫助。我很困惑,如果我們動態地添加,我們將如何跟蹤哪個複選框被選中或未選中。

我當前的代碼

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.sr = i.ToString(); 
       ite.ch = new CheckBox(); 
       item.Add(ite); 
      } 
      dataGrid1.ItemsSource = item 
     } 
    } 
    public class checkedBoxIte 
    { 
     public string sr {get;set;} 
     public CheckBox ch { get; set; } 
    } 

,但我知道這是添加複選框,這樣愚蠢的事情,但它只是一個嘗試 上面的類包含兩個屬性以後,將有更多的,但都將是字符串

回答

15

WPF不知道如何處理您的checkedBoxIte項目。我建議你改變你的類,如下所示:

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

然後設置你DataGrid的列是這樣的:

<DataGrid AutoGenerateColumns="False"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="MyString" Binding="{Binding MyString}" /> 
     <DataGridCheckBoxColumn Header="MyBool" Binding="{Binding MyBool}" /> 
    </DataGrid.Columns> 
</DataGrid> 

現在,您可以設置ItemsSource

for (int i = 0; i < 5; i++) 
{ 
    checkedBoxIte ite = new checkedBoxIte(); 
    ite.MyString = i.ToString(); 
    item.Add(ite); 
} 
dataGrid1.ItemsSource = item; 
+0

它的工作非常好,但我有這樣的問題,首先有4個colums出現平均repeats2.How我們可以觸發事件或檢查哪個複選框是這樣的? –

+0

嗯,我不認爲有四列是正常的。你確定你已經將'AutoGenerateColumns'設置爲'False'嗎? –

+0

這是真的。現在正在工作。我能做些什麼第二部分檢測已檢查行 –