WPF: проблема с флажком при привязке источника данных к свойству «Ischecked» - PullRequest
3 голосов
/ 13 ноября 2008

У меня есть флажок в GridViewColumn, который я использую для отображения / изменения значения базы данных. Событие click для флажка используется для изменения значения в базе данных. Для обработки состояния свойства "IsChecked" я использую datatrigger и сеттер, вот код 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 ]

3 голосов
/ 13 ноября 2008

Не должно

<Style TargetType="CheckBox">

вместо:

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

Edit:

Вы можете попробовать это:

    <Style TargetType="{x:Type CheckBox}" >
        <Setter Property="IsChecked" Value="{Binding Path=ID, Converter={StaticResource Converter}}" />
    </Style>
0 голосов
/ 13 ноября 2008

Вместо использования Click, чтобы определить изменения, возможно, вы можете использовать события Checked и Unchecked?

0 голосов
/ 13 ноября 2008

Вы можете попытаться добавить второй триггер данных, чтобы установить флажок в false. Как я вижу из вашего кода, вы устанавливаете IsChecked только в true, но никогда в false.

...