WPF: 绑定DataTrigger到"IsChecked"属性时复选框出现问题

4

我在GridViewColumn中有一个复选框,用于显示/更改数据库值。单击复选框的事件用于更改数据库中的值。为了处理“IsChecked”属性的状态,我使用Datatrigger和Setter,如下所示的XAML代码:

<Style TargetType="CheckBox">
    <Setter Property="IsEnabled" Value="True" />
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=ID, Converter={StaticResource Converter}}"   Value="true">
            <Setter Property="IsChecked" Value="True"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

绑定功能很好,但当我点击复选框时就出现问题。第一次点击复选框后,如果我手动更改映射到属性“IsChecked”的值,则该属性的状态不会更新。例如,如果我将相同的值映射到复选框的属性“Content”,则触发器仍能正常工作,即使我已经点击了复选框。有人知道问题出在哪里吗?
3个回答

4

不应该

<Style TargetType="CheckBox">

改为:

 <Style TargetType="{x:Type CheckBox}">

编辑:

你可以尝试这个方法:

    <Style TargetType="{x:Type CheckBox}" >
        <Setter Property="IsChecked" Value="{Binding Path=ID, Converter={StaticResource Converter}}" />
    </Style>

是的没错。谢谢。但这并不能帮助我解决我的PropertyTrigger问题 :( - KaJo
谢谢!您最近一次的编辑,再加上转换器类(还原功能)的一些修改,解决了我的问题。 - KaJo

1
你可以尝试添加第二个数据触发器来将复选框设置为false。从你的代码中我可以看到你只将IsChecked设置为true,但从未设置为false。

0
不妨使用 Checked 和 Unchecked 事件来确定更改,而不是使用 Click。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接