Я не думаю, что регулярная привязка данных к HeaderCheckBox
возможна, поскольку CheckBox
существует как часть Template
и находится в другой ветви VisualTree
, чем DataGridItems
* 1006.*
Обычно я делаю все наоборот: когда проверяется заголовок CheckBox
, проверьте всю строку CheckBoxes
.Моя основная причина этого заключается в том, что флажки обычно присутствуют, поэтому пользователи могут их отмечать / снимать, и если они связаны с состоянием проверки CheckBox заголовка, то пользователь не может их изменять.
Для реализациито есть я обычно подключаюсь к событию Click
или Checked
контрольного блока заголовка.
Если состояние строки CheckBox.IsChecked
связано с чем-то в ViewModel, я подключу событие к Command
в моей ViewModel и установите элемент данных, с которым CheckBox.IsChecked
связан true
/ false
, в зависимости от состояния CheckBox заголовка (обычно передается как CommandParameter
)
Еслисостояние CheckBox.IsChecked
ни к чему не привязано, вы можете использовать обычный code-behind для циклического просмотра вашего DataGrid.Items
, использовать ItemContainerGenerator
, чтобы получить ItemContainer для каждого элемента, найти CheckBox
, а затем установить его проверкусостояние.