DataGrid CheckBox初始化为所有已检查

时间:2011-05-04 03:07:54

标签: c# wpf datagrid

我正在使用带有WPF和XAML的.Net 3.5。 我有一个datagrid,第一列是DataGridCheckBoxColumn。 这是一个窗口弹出窗口。 在构造函数中,我有时想初始化要选择的所有行,而其他情况下没有要选择的行。

使用数据绑定,我可以初始化行上的复选框以选中或不选中。
但是,当检查所有行时,我无法检查标题复选框以及行中的所有检查。我怎样才能进入复选框?

<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 个答案:

答案 0 :(得分: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;
        } 
    }