События Checkbox / Unchecked на самом деле являются примитивными типами ToggleButton.Checked / Unchecked, и их использование не поощряется сообществом разработчиков.
Вместо этого вы можете обрабатывать событие CheckBox.Click и внутри этого обработчика ....
if (((CheckBox)sender).IsChecked.GetValueOrDefault(false))
{
//// Your Checked Code Here ...
}
else
{
//// Your unchecked code here ...
}
Это должно избежать повторного выполнения проверенного кода ...
Фактически, вместо того, чтобы обрабатывать несколько флажков для одного и того же обработчика события щелчка, вы можете использовать всплывающее окно присоединенного перенаправленного события под названием Button.Click.
Обрабатывать кнопку. Нажмите на свой уровень DataGrid.
<dg:DataGrid Button.Click="CheckBoxClick" ... >
....
Назовите свой флажок в столбце шаблона.
<CheckBox IsChecked="{Binding Selecting, UpdateSourceTrigger=PropertyChanged}" x:Name="LocalColumnCheckbox" />
В обработчике CheckBoxClick используйте этот код ...
private void CheckBoxClick(object sender, RoutedEventArgs e)
{
var checkBox = e.OriginalSource as CheckBox;
if (checkBox != null && checkBox.Name == "LocalColumnCheckbox")
{
if (checkBox.IsChecked.GetValueOrDefault(false))
{
//// Your Checked Code Here ...
}
else
{
//// Your unchecked code here ...
}
}
}
Дайте мне знать, если это поможет.