c# - 未触发数据网格上复选框的未选中事件
问题描述
我为数据网格上的复选框处理了选中/未选中的事件
<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>
该复选框会触发这两个事件。第一个仅触发 Checked 事件。我将处理程序交换为 Checked 和 Unchecked 以查看它是否是导致问题的未经检查的方法,但它运行正确。看来事件没有触发。第二个盒子的代码是相同的,但它会按预期触发。
private void empAck_OnCheck(object sender, RoutedEventArgs e)
{
MessageBox.Show("Checked");
}
public void empAck_OnUncheck(object sender, RoutedEventArgs e)
{
MessageBox.Show("Unchecked");
}
解决方案
推荐阅读
- azure-devops - 在 Azure DevOps 中,如何自动将工作项从一个状态移动到另一个状态?
- c++ - 从 Visual Studio 部署非常小的应用程序的困难
- python - kivy 应用程序中的错误:object.__init__() 仅采用一个参数(要初始化的实例)
- c++ - 没有这样的文件或目录collect2.exe:错误:ld 返回 1 退出状态
- flutter - 如何突出显示搜索结果中的匹配项
- css - 预选选项在页面加载时突出显示为灰色,希望它为蓝色
- reactjs - React Hooks 中关于 setState 回调的一些混淆
- javascript - 如何减少 HTML 元素在 JavaScript 中的 X 位置?
- javascript - npm 错误!grpc@1.20.0 安装脚本失败
- linux - 如何设置 DT_RPATH 或 DT_RUNPATH?