将IsEnabled绑定到2个源

时间:2018-07-02 08:04:34

标签: c# wpf xaml

我发现以下简单的代码行将按钮的IsEnabled属性绑定到文本框内是否存在字符串:

<Button x:Name="startBtn" Content="Rinomina" HorizontalAlignment="Left" Margin="255,79,0,0" VerticalAlignment="Top" Width="75" Height="36" IsEnabled="{Binding ElementName=seasonBox, Path=Text.Length}"/>

不需要C#代码。现在,我想做同样的事情,但有2个文本框而不是1个。我阅读了有关Multibinding的信息,但我不知道如何实现它。你能帮我吗?可以仅使用xaml代码吗?

1 个答案:

答案 0 :(得分:0)

如果要在Button中的任何一个为空时禁用TextBoxes,则可以使用两个触发器:

<TextBox x:Name="textBox1" />
<TextBox x:Name="textBox2" />

<Button x:Name="startBtn" Content="Rinomina" HorizontalAlignment="Left" Margin="255,79,0,0" VerticalAlignment="Top" Width="75" Height="36">
    <Button.Style>
        <Style TargetType="Button">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Text.Length, ElementName=textBox1}" Value="0">
                    <Setter Property="IsEnabled" Value="False" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Text.Length, ElementName=textBox2}" Value="0">
                    <Setter Property="IsEnabled" Value="False" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>