共用方式為


MultiDataTrigger 類別

定義

表示觸發程序,這個觸發程序會在繫結資料符合一組條件時套用屬性值或執行動作。

public ref class MultiDataTrigger sealed : System::Windows::TriggerBase, System::Windows::Markup::IAddChild
[System.Windows.Markup.ContentProperty("Setters")]
public sealed class MultiDataTrigger : System.Windows.TriggerBase, System.Windows.Markup.IAddChild
[<System.Windows.Markup.ContentProperty("Setters")>]
type MultiDataTrigger = class
    inherit TriggerBase
    interface IAddChild
Public NotInheritable Class MultiDataTrigger
Inherits TriggerBase
Implements IAddChild
繼承
屬性
實作

範例

在下列範例中 ItemsSource ,的 ListBox 屬性會系結至 Places ObservableCollection<T> 物件的 PlacePlace 物件具有屬性 NameState 。 未顯示 和 Places 的定義 Place

ListBox每個 ListBoxItem 都會顯示 Place 物件。 Style範例中的 會套用至每個 ListBoxItem 。 的 Condition MultiDataTrigger 元素會指定如果 State Name Place 和 的資料項目分別是 PortlandOR ,則對應的 ListBoxItem 背景會設定為 。 Cyan

<Window.Resources>
  <c:Places x:Key="PlacesData"/>

  <Style TargetType="ListBoxItem">
    <Style.Triggers>
      <DataTrigger Binding="{Binding Path=State}" Value="WA">
        <Setter Property="Foreground" Value="Red" />
      </DataTrigger>	
      <MultiDataTrigger>
        <MultiDataTrigger.Conditions>
          <Condition Binding="{Binding Path=Name}" Value="Portland" />
          <Condition Binding="{Binding Path=State}" Value="OR" />
        </MultiDataTrigger.Conditions>
        <Setter Property="Background" Value="Cyan" />
      </MultiDataTrigger>
    </Style.Triggers>
  </Style>

  <DataTemplate DataType="{x:Type c:Place}">
    <Canvas Width="160" Height="20">
      <TextBlock FontSize="12"
             Width="130" Canvas.Left="0" Text="{Binding Path=Name}"/>
      <TextBlock FontSize="12" Width="30"
                 Canvas.Left="130" Text="{Binding Path=State}"/>
    </Canvas>
  </DataTemplate>
</Window.Resources>

<StackPanel>
  <TextBlock FontSize="18" Margin="5" FontWeight="Bold"
    HorizontalAlignment="Center">Data Trigger Sample</TextBlock>
  <ListBox Width="180" HorizontalAlignment="Center" Background="Honeydew"
    ItemsSource="{Binding Source={StaticResource PlacesData}}"/>
</StackPanel>

備註

MultiDataTrigger物件類似于 MultiTrigger ,不同之處在于 MultiDataTrigger 的條件是以系結資料的屬性值為基礎,而不是 UIElement 。 在 中 MultiDataTrigger ,當資料項目的屬性值符合指定的 Value 時,就會符合條件。 然後,您可以使用 setter 或 EnterActionsExitActions 屬性,在符合所有條件時套用變更或啟動動作。

物件的 Setters 屬性 MultiDataTrigger 只能包含 Setter 物件。 Setter將子系新增至 MultiDataTrigger 物件,以隱含方式將它新增至 SetterBaseCollection 物件的 MultiDataTriggerEventSetter 不支援 物件;僅 Style.Setters 支援 EventSetter 物件。

如需何時使用觸發程式和何時使用其他技術的相關資訊,請參閱 資料範本化概觀

建構函式

MultiDataTrigger()

初始化 MultiDataTrigger 類別的新執行個體。

屬性

Conditions

取得 Condition 物件的集合。 符合集合中的所有條件時,會套用屬性值的變更。

DependencyObjectType

取得包裝 DependencyObjectType 這個實例 CLR 型別的 。

(繼承來源 DependencyObject)
Dispatcher

取得與這個 Dispatcher 關聯的 DispatcherObject

(繼承來源 DispatcherObject)
EnterActions

取得要在觸發程序物件變成作用中時所套用的 TriggerAction 物件集合。 此屬性不適用於 EventTrigger 類別。

(繼承來源 TriggerBase)
ExitActions

取得 TriggerAction 物件的集合,在觸發程序物件變成非作用時套用。 此屬性不適用於 EventTrigger 類別。

(繼承來源 TriggerBase)
IsSealed

取得值,這個值表示此執行個體目前是否已密封 (唯讀)。

(繼承來源 DependencyObject)
Setters

取得 Setter 物件的集合,這些物件描述當 MultiDataTrigger 的所有條件都符合時要套用的屬性值。

方法

CheckAccess()

判斷呼叫的執行是否可以存取這個 DispatcherObject

(繼承來源 DispatcherObject)
ClearValue(DependencyProperty)

清除屬性的區域數值。 要清除的屬性是由 DependencyProperty 識別項所指定。

(繼承來源 DependencyObject)
ClearValue(DependencyPropertyKey)

清除唯讀屬性的區域數值。 要清除的屬性是由 DependencyPropertyKey 所指定。

(繼承來源 DependencyObject)
CoerceValue(DependencyProperty)

強制轉型所指定相依性屬性的值。 完成方式是叫用存在於呼叫 DependencyObject 之相依性屬性的屬性中繼資料中所指定的任何 CoerceValueCallback 函式。

(繼承來源 DependencyObject)
Equals(Object)

判斷提供的 DependencyObject 和目前的 DependencyObject 是否相等。

(繼承來源 DependencyObject)
GetHashCode()

取得這個 DependencyObject 的雜湊碼。

(繼承來源 DependencyObject)
GetLocalValueEnumerator()

建立特定的列舉值,以判斷哪些相依性屬性在此 DependencyObject 上具有本機設定的值。

(繼承來源 DependencyObject)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetValue(DependencyProperty)

傳回 DependencyObject 的這個執行個體上之相依性屬性的目前有效值。

(繼承來源 DependencyObject)
InvalidateProperty(DependencyProperty)

重新評估指定相依性屬性的有效值。

(繼承來源 DependencyObject)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

每當這個 DependencyObject 上任何相依性屬性的有效值已更新時叫用。 已變更的特定相依性屬性會在事件資料中報告。

(繼承來源 DependencyObject)
ReadLocalValue(DependencyProperty)

傳回相依性屬性的區域值 (如果存在)。

(繼承來源 DependencyObject)
SetCurrentValue(DependencyProperty, Object)

設定相依性屬性的值,而不需要變更其值來源。

(繼承來源 DependencyObject)
SetValue(DependencyProperty, Object)

設定相依性屬性的區域值 (由相依性屬性的識別碼所指定)。

(繼承來源 DependencyObject)
SetValue(DependencyPropertyKey, Object)

設定唯讀相依性屬性的區域數值 (由相依性屬性的 DependencyPropertyKey 識別項所指定)。

(繼承來源 DependencyObject)
ShouldSerializeProperty(DependencyProperty)

傳回值,這個值表示序列化程序是否應該序列化所提供相依性屬性的值。

(繼承來源 DependencyObject)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
VerifyAccess()

請強制執行可以存取這個 DispatcherObject 的呼叫執行緒。

(繼承來源 DispatcherObject)

明確介面實作

IAddChild.AddChild(Object)

加入子物件。

IAddChild.AddText(String)

將節點的文字內容加入物件中。

適用於

另請參閱