C# datagrid上的复选框未选中事件未触发

C# datagrid上的复选框未选中事件未触发,c#,wpf,C#,Wpf,我已经处理了datagrid上复选框的已选中/未选中事件 <DataGridCheckBoxColumn Header="Emp Acknowlegement" Binding="{Binding Path=Trained}" Width="*"> <DataGridCheckBoxColumn.ElementStyle> <Style TargetType="CheckBox">

我已经处理了datagrid上复选框的已选中/未选中事件

        <DataGridCheckBoxColumn Header="Emp Acknowlegement" Binding="{Binding Path=Trained}" Width="*">
            <DataGridCheckBoxColumn.ElementStyle>
                <Style TargetType="CheckBox">
                    <Setter Property="IsEnabled" Value="False"/>
                    <EventSetter Event="Checked" Handler="empAck_OnCheck"/>
                    <EventSetter Event="Unchecked" Handler="empAck_OnUncheck"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding isUser}" Value="1">
                            <Setter Property="IsEnabled" Value="True" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </DataGridCheckBoxColumn.ElementStyle>
        </DataGridCheckBoxColumn>
        <DataGridCheckBoxColumn Header="Effectiveness Check" Binding="{Binding Path=EffectiveCheck}" Width="*">
            <DataGridCheckBoxColumn.ElementStyle>
                <Style TargetType="CheckBox">
                    <Setter Property="IsEnabled" Value="False"/>
                    <EventSetter Event="Checked" Handler="effAck_OnCheck"/>
                    <EventSetter Event="Unchecked" Handler="effAck_OnUncheck"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding Level}" Value="2">
                            <Setter Property="IsEnabled" Value="True" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </DataGridCheckBoxColumn.ElementStyle>
        </DataGridCheckBoxColumn>

使用样式编辑ElementStyle而不是ElementStyle。或者将其作为一种资源,并将其用于两者。无论哪种方式,使用它来编辑ElementStyle都会解决问题。@EdPlunkett就是它解决的,如果你把它作为答案发布,我会接受它。非常感谢。事实上,现在我无法重现这个问题,所以我根本没有信心知道发生了什么。我认为我的解决方案一开始是失败的,因为我使用的行视图模型中未定义
isUser
,而不是样式。@EdPlunkett老实说,我不知道为什么您的解决方案适用于这个特定的复选框,而我使用的其他复选框不需要它。不过现在可以了,我只是不知道为什么。我们还没有回答这个问题。
    private void empAck_OnCheck(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("Checked");

    }

    public void empAck_OnUncheck(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("Unchecked");

    }