-1

MultiDataTriggersを使用して、2つのテキストボックスの値に基づいてボタンを有効/無効にしようとしています。

ドキュメントには、MultiDataTriggerの条件が論理的にANDで結合されていると記載されています。以下の例では、txtFirst.Textがfooで、txtSecond.Textがbarの場合、ボタンを有効にします。ただし、ボタンは常に無効のままです(IsEnabled = false)。

私はここでトリックを見逃していると確信していますが、Googleを徹底的に検索してもどこにも行きませんでした...。

<StackPanel>
        <Button IsEnabled="False" Content="OK">
            <Button.Style>
                <Style>
                    <Style.Triggers>
                        <MultiDataTrigger>
                            <MultiDataTrigger.Conditions>
                                <Condition Binding="{Binding ElementName=txtFirst, Path=Text}" Value="foo"/>
                                <Condition Binding="{Binding ElementName=txtSecond, Path=Text}" Value="bar"/>
                            </MultiDataTrigger.Conditions>
                            <Setter Property="Button.IsEnabled" Value="True"/>
                        </MultiDataTrigger>
                    </Style.Triggers>
                </Style>
            </Button.Style>
        </Button>

        <TextBox x:Name="txtFirst"/>
        <TextBox x:Name="txtSecond"/>
    </StackPanel>
4

1 に答える 1

3

オブジェクト自体にプロパティを直接設定すると、スタイルによってトリガーされる設定が上書きされます。ボタン宣言を次のように変更します。

<Button Content="OK">
    <Button.Style>
        <Style>
            <Setter Property="IsEnabled" Value="False"/>
            <Style.Triggers>

IsEnabledプロパティがスタイルに設定されたので、トリガーはそれを変更できます。理由を聞かないでください。:)

于 2009-07-09T09:46:06.853 に答える