MultiDataTrigger.Conditions Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.