DataGridCheckBox инициализировать для всех проверенных - PullRequest
0 голосов
/ 04 мая 2011

Я использую .Net 3.5 с WPF и XAML. У меня есть сетка данных с первым столбцом, являющимся 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 Ответ

1 голос
/ 04 мая 2011

Я не уверен, что это лучший способ сделать это, но вы можете сделать

<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;
        } 
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...