4

データベース値の表示/変更に使用する 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」の状態が更新されません。たとえば、チェックボックスのプロパティ「コンテンツ」に同じ値をマップすると、チェックボックスをクリックした後でもトリガーは正常に機能します。

誰も何が問題なのですか?

4

3 に答える 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>
于 2008-11-13T13:38:26.583 に答える
0

2 つ目のデータ トリガーを追加して、チェックボックスを false に設定してみてください。コードからわかるように、IsChecked を true にのみ設定し、false には設定しません。

于 2008-11-13T10:34:08.957 に答える
0

Click を使用して変更を決定する代わりに、おそらく Checked および Unchecked イベントを使用できますか?

于 2008-11-13T13:28:38.880 に答える