curiousity
curiousity

Reputation: 4741

Disable button if any of two text-boxes is in edit mode

I am trying to do this via styles. But all samples are connected with validation - how to bind to "edit mode"

<RibbonButton.Style>
    <Style TargetType="RibbonButton">
        <Setter Property="IsEnabled" Value="False"/>
            <Style.Triggers>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="Binding Path=(Validation.???EDIT MODE)"
                    </MultiDataTrigger.Conditions>
                </MultiDataTrigger>
            </Style.Triggers>

    </Style>
</RibbonButton.Style>

Upvotes: 0

Views: 114

Answers (1)

dkozl
dkozl

Reputation: 33384

If by edit mode you mean that either TextBox has focus you can use IsKeyboardFocusWithin property and trigger IsEnabled=True when this property is false for both TextBoxes

<StackPanel>
    <TextBox x:Name="textBox1"/>
    <TextBox x:Name="textBox2"/>
    <RadioButton>
        <RadioButton.Style>
            <Style TargetType="{x:Type RadioButton}">
                <Setter Property="IsEnabled" Value="False"/>
                <Style.Triggers>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding ElementName=textBox1, Path=IsKeyboardFocusWithin}" Value="False"/>
                            <Condition Binding="{Binding ElementName=textBox2, Path=IsKeyboardFocusWithin}" Value="False"/>                                
                        </MultiDataTrigger.Conditions>
                        <Setter Property="IsEnabled" Value="True"/>
                    </MultiDataTrigger>
                </Style.Triggers>
            </Style>
        </RadioButton.Style>
    </RadioButton>
</StackPanel>

Upvotes: 2

Related Questions