我在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”的状态不会更新。 如果我将相同的值映射到复选框的属性“内容”,即使在我单击复选框后触发器也能正常工作。
有没有人没有问题是什么?
答案 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来确定更改吗?