多觸發器

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 會禁用提交按鈕。