如果两个文本框中的任何一个处于编辑模式,则禁用按钮

本文关键字:模式 编辑 按钮 于编辑 任何一 文本 两个 如果 | 更新日期: 2023-09-27 17:49:25

我正试图通过样式来做到这一点。但是所有的示例都与验证有关——如何绑定到"编辑模式"

<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>

如果两个文本框中的任何一个处于编辑模式,则禁用按钮

如果通过编辑模式您的意思是TextBox有焦点,您可以使用IsKeyboardFocusWithin属性并在此属性为false时触发IsEnabled=True对于TextBox es

<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>