Compartir a través de


MultiDataTrigger.Conditions Propiedad

Definición

Obtiene una colección de objetos Condition. Los cambios en los valores de propiedades se aplican cuando se cumplen todas las condiciones de la colección.

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

Valor de propiedad

ConditionCollection

Una colección de objetos Condition. El valor predeterminado es una colección vacía.

Ejemplos

En el ejemplo siguiente, la ItemsSource propiedad de ListBox está enlazada a Places, de ObservableCollection<T> Place objetos . Place los objetos tienen propiedades Name y State. La definición de Place y Places no se muestran.

Cada ListBoxItem una de las ListBox muestra un Place objeto . En Style el ejemplo se aplica a cada ListBoxItem. Los Condition elementos de MultiDataTrigger especifican que si y Name State del Place elemento de datos son Portland y OR respectivamente, el fondo de correspondiente ListBoxItem se establece en 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>

Comentarios

Un MultiDataTrigger objeto es similar a un MultiTrigger, salvo que las condiciones de un MultiDataTrigger se basan en valores de propiedad de datos enlazados en lugar de en los de .UIElement En , MultiDataTriggerse cumple una condición cuando el valor de propiedad del elemento de datos coincide con el especificado Value. Ese valor se convierte primero en el tipo del valor del enlace, si es posible, y, a continuación, los dos valores se comparan mediante el Object.Equals método . MultiTrigger aplica los establecedores o acciones asociados cuando todas las condiciones son verdaderas (operación binariaAND).

Para , MultiDataTriggercada condición de la colección debe establecer las Binding propiedades y Value . Para obtener más información, vea Binding.

Uso de elementos de propiedad XAML

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

Valores XAML

zeroOrMoreConditions
Cero o más Condition objetos.

Se aplica a

Consulte también