Freigeben über


MultiDataTrigger.Conditions Eigenschaft

Definition

Ruft eine Auflistung von Condition-Objekten ab. Änderungen an Eigenschaftswerten werden angewendet, wenn alle Bedingungen in der Auflistung erfüllt werden.

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

Eigenschaftswert

ConditionCollection

Eine Auflistung von Condition-Objekten. Der Standard ist eine leere Auflistung.

Beispiele

Im folgenden Beispiel ist die ItemsSource Eigenschaft der ListBox Eigenschaft an Placeseine ObservableCollection<T> von Place Objekten gebunden. Place Objekte verfügen über Eigenschaften Name und State. Die Definition von Place und Places werden nicht angezeigt.

Jeder ListBoxItem der ListBox Anzeigen eines Place Objekts. Das Style Beispiel wird auf jede ListBoxItemAnwendung angewendet. Die Condition Elemente des MultiDataTrigger Angebens, dass, wenn das Name Datenelement und OR Place State das Datenelement vorhanden sindPortland, dann wird der Hintergrund des entsprechenden ListBoxItem Elements auf Cyanfestgelegt.

<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>

Hinweise

Ein MultiDataTrigger Objekt ähnelt einem MultiTrigger, außer dass die Bedingungen MultiDataTrigger eines Objekts auf Eigenschaftenwerten gebundener Daten basieren, anstatt auf denen eines UIElement. In einem MultiDataTrigger, wird eine Bedingung erfüllt, wenn der Eigenschaftswert des Datenelements dem angegebenen Valueentspricht. Dieser Wert wird zuerst in den Typ des Werts der Bindung konvertiert, falls möglich, und dann werden die beiden Werte mit der Object.Equals Methode verglichen. Die MultiTrigger zugeordneten Setter oder Aktionen werden angewendet, wenn alle Bedingungen wahr sind (binärer AND Vorgang).

Für eine MultiDataTrigger, jede Bedingung in der Auflistung muss sowohl die Eigenschaften als auch die Binding Value Eigenschaften festlegen. Weitere Informationen finden Sie unter Binding.

Verwendung von XAML-Eigenschaftenelementen

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

XAML-Werte

zeroOrMoreConditions
Null oder mehr Condition Objekte.

Gilt für

Siehe auch