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