多触发器

MultiTrigger 不是经常需要的,但在某些情况下它非常方便。MultiTrigger 的行为与 Trigger 或 DataTrigger 类似,但它有多个条件。所有条件必须适用于 Setters 才能开火。这是一个简单的例子:

<!-- Text field needs to be initialized in order for the trigger to work at start -->
<Entry x:Name="email" Placeholder="Email" Text="" />
<Entry x:Name="phone" Placeholder="Phone" Text="" />
<Button Text="Submit">
    <Button.Triggers>
        <MultiTrigger TargetType="Button">
            <MultiTrigger.Conditions>
                <BindingCondition Binding="{Binding Source={x:Reference email}, Path=Text.Length}" Value="0" />
                <BindingCondition Binding="{Binding Source={x:Reference phone}, Path=Text.Length}" Value="0" />
            </MultiTrigger.Conditions>
            <Setter Property="IsEnabled" Value="False" />
        </MultiTrigger>
    </Button.Triggers>
</Button>

该示例有两个不同的条目,电话和电子邮件,其中一个需要填写。当两个字段都为空时,MultiTrigger 会禁用提交按钮。