WPF: проблема с флажком при привязке триггера данных к свойству Ischecked

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

У кого-нибудь нет в чем проблема?


person KaJo    schedule 13.11.2008    source источник


Ответы (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>
person Pop Catalin    schedule 13.11.2008
comment
Да это правильно. Спасибо. Но это не помогает мне с моим propertytrigger :( - person KaJo; 13.11.2008
comment
Спасибо! Ваше последнее изменение вместе с некоторыми изменениями в классе преобразователя (функция обратного преобразования) решило мою проблему. - person KaJo; 13.11.2008

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

person OliK    schedule 13.11.2008

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

person Arcturus    schedule 13.11.2008