2011-05-04 46 views
0

我使用帶有WPF和XAML的.Net 3.5。 我有一個DataGrid,第一列是DataGridCheckBoxColumn。 這是一個窗口彈出窗口。 在構造函數中,我有時想要初始化所有要選擇的行,而其他情況下沒有要選擇的行。DataGridCheckBox初始化爲全部檢查

使用數據綁定,我可以初始化一行上的複選框,以選中或不選中。
但是我不能得到頭部複選框以及在所有行被檢查的情況下行中的所有檢查。我怎樣才能進入複選框?

<toolkit:DataGridCheckBoxColumn CellStyle="{StaticResource SingleClickEditing}" Visibility="{Binding exists}" Binding="{Binding Path=toTransfer, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False"> 
    <toolkit:DataGridCheckBoxColumn.HeaderTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
      <CheckBox Checked="CheckBox_Checked" Unchecked="CheckBox_Checked"/> 
      </StackPanel> 
     </DataTemplate> 
    </toolkit:DataGridCheckBoxColumn.HeaderTemplate> 
</toolkit:DataGridCheckBoxColumn> 

我做這樣的事情:

public MyPopupWindow() 
{ 
     InitializeComponent(); 

     if(checkMode.Equals("all")) 
     { 
      // Check all the items 
      foreach (var item in bindList) 
      { 
       item.toTransfer = true; 
      } 
      // How to check the header checkbox? 
     } 

回答

1

我不知道這是否是做到這一點的最好辦法,但你可以做

<CheckBox Checked="CheckBox_Checked" Unchecked="CheckBox_Checked" Loaded="CheckBox_Loaded"/> 

void CheckBox_Loaded(object sender, RoutedEventArgs e) 
    { 
     CheckBox checkBox = sender as CheckBox; 
     if(checkMode.Equals("all")) 
     { 
      checkBox.IsChecked = true; 
     } 
    } 
+0

好主意。我試過這個,它工作。 – George 2011-05-04 04:08:04