2011-03-07 22 views
5

こんにちは、データグリッドview.iにチェックボックスを追加したいのですが、テストコードが記述されていますが失敗します。 私がやろうとしているのは、DataGridにチェックボックスを追加し、それにアイテムを追加する select allとselect noneオプションを使用します。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; } 
    } 

を持っていますが、私はより多くを持っているだろうが、すべての文字列になり、このようにチェックボックスを追加するには愚かなことですが知っているが、それはクラスの上にちょうど試し た後に、その上に2つの属性が含まれています

答えて

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つの列が表示されているようないくつかの問題があります.2つのイベントを発生させたり、どのチェックボックスをチェックしたりできますか? –

+0

まあ、私は4つの列があることは普通だとは思わない。 'AutoGenerateColumns'を' False'に設定してもよろしいですか? –

+0

これは真だった。今すぐ動作し、2番目の部分がチェックされた行を検出するためにできること –

関連する問題