次の方法で共有


MultiDataTrigger.Conditions プロパティ

定義

Condition オブジェクトのコレクションを取得します。 プロパティ値に対する変更は、コレクション内のすべての条件が満たされたときに適用されます。

public:
 property System::Windows::ConditionCollection ^ Conditions { System::Windows::ConditionCollection ^ get(); };
public System.Windows.ConditionCollection Conditions { get; }
member this.Conditions : System.Windows.ConditionCollection
Public ReadOnly Property Conditions As ConditionCollection

プロパティ値

ConditionCollection

Condition オブジェクトのコレクション。 既定値は空のコレクションです。

次の例では、ItemsSourceオブジェクトのプロパティがListBoxオブジェクトの Place 1 にPlacesObservableCollection<T>バインドされています。 Place オブジェクトにはプロパティ NameState. の定義 PlacePlaces 表示されません。

それぞれの ListBoxItem オブジェクトが ListBox 表示されます Place 。 この Style 例では、それぞれ ListBoxItemに適用されます。 データ項目の要素はCondition、データ項目とデータ項目のそれぞれがあるPortland``OR場合Name Place State、対応するListBoxItem背景がに設定Cyanされていることを指定します。MultiDataTrigger

<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オブジェクトは a MultiTriggerに似ていますが、a のMultiDataTrigger条件はバインドされたデータのプロパティ値にUIElement基づいている点が異なります。 では MultiDataTrigger、データ項目のプロパティ値が指定した値と一致すると条件が満たされます Value。 その値は、最初にバインディングの値の型 (可能な場合) に変換され、次にメソッドを使用して 2 つの値が Object.Equals 比較されます。 すべての MultiTrigger 条件が true (バイナリ AND 演算) の場合、関連付けられているセッターまたはアクションが適用されます。

の場合、MultiDataTriggerコレクション内の各条件で、プロパティとValueプロパティの両方を設定するBinding必要があります。 詳細については、「Binding」を参照してください。

XAML プロパティ要素の使用

<object>  
  <object.Conditions>  
    zeroOrMoreConditions  
  </object.Conditions>  
</object>  

XAML 値

zeroOrMoreConditions
0 個以上の Condition オブジェクト。

適用対象

こちらもご覧ください