WPF:将datatrigger绑定到属​​性“Ischecked”时Checkbox出现问题

时间:2008-11-13 08:42:44

标签: wpf checkbox properties datatrigger

我在GridViewColumn中有一个复选框,用于显示/更改数据库值。复选框的单击事件用于数据库中的更改值。为了处理财产状态“IsChecked”我正在使用datatrigger和一个setter,se 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”的值,则属性“IsChecked”的状态不会更新。 如果我将相同的值映射到复选框的属性“内容”,即使在我单击复选框后触发器也能正常工作。

有没有人没有问题是什么?

3 个答案:

答案 0 :(得分:3)

不应该

<Style TargetType="CheckBox">

取而代之的是:

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

编辑:

你可以试试这个:

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

答案 1 :(得分:0)

您可以尝试添加第二个数据触发器,将复选框设置为false。正如我从您的代码中看到的那样,您只将IsChecked设置为true,但永远不会为false。

答案 2 :(得分:0)

您可以使用Checked和Unchecked事件来代替使用Click来确定更改吗?