1

2つのチェックボックスと1つのテキストボックスがあります。両方のチェックボックスにIsChecked=Falseがある場合、TextBoxにIsEnabled=Falseを設定したいと思います。MultiTriggerでこれを行うことはできますか?Sourceプロパティを使用しようとするとエラーが発生し続けます。

以下に示すように、MultiDataTriggersで動作しています。しかし、2つの質問があります。

1)これが私の唯一の選択ですか?MultiTriggerでそれを行うことはできますか?

<TextBox.Style>
    <Style TargetType="TextBox">
        <Style.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding ElementName=uxDmm , Path=IsChecked}"
                                  Value="False" />
                    <Condition Binding="{Binding ElementName=uxGpm , Path=IsChecked}"
                                  Value="False" />
                </MultiDataTrigger.Conditions>
                <Setter Property="IsEnabled"
                          Value="False" />
            </MultiDataTrigger>
        </Style.Triggers>
    </Style>
</TextBox.Style>

2)タグの外でこれを行うことはできますか?トリガーをどこに適用できるかはよくわかりません。ほとんどのサンプルはStyleまたはDataTemplates内でトリガーを適用しますが、Style内でトリガーを定義すると、TextBoxのデフォルトのルックアンドフィールが台無しになります。

4

1 に答える 1

2
  1. あなたがそれをした方法は正しいです。についてはよくわかりませんがMultiTrigger、とにかくこのアプローチの方が見栄えがします。
  2. Styleデフォルトのテキストボックス スタイルに基づいて作成したい場合は、次のことを試してください。

<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">

于 2010-04-05T20:55:03.883 に答える