MultiDataTrigger.Conditions Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém uma coleção de objetos Condition . As alterações de valores de propriedade são aplicadas quando todas as condições na coleção são atendidas.
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 da propriedade
Uma coleção de objetos Condition . O padrão é uma coleção vazia.
Exemplos
No exemplo a seguir, a ItemsSource propriedade do ListBox é associada a Places
, um ObservableCollection<T> dos Place
objetos. Place
os objetos têm propriedades Name
e State
. A definição de Place
e Places
não são mostradas.
Cada ListBoxItem um deles ListBox exibe um Place
objeto. O Style exemplo é aplicado a cada ListBoxItem. Os Condition elementos da MultiDataTrigger especificação especificam que, se o item de dados e State
o Name
Place
item de dados forem Portland
eOR
, respectivamente, o plano de fundo da correspondente ListBoxItem será definido como 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>
Comentários
Um MultiDataTrigger objeto é semelhante a um MultiTrigger, exceto que as condições de um MultiDataTrigger são baseadas em valores de propriedade de dados associados em vez daqueles de um UIElement. Em uma MultiDataTriggercondição, uma condição é atendida quando o valor da propriedade do item de dados corresponde ao especificado Value. Esse valor é convertido primeiro para o tipo do valor da associação, se possível, e então os dois valores são comparados usando o Object.Equals
método. Aplica MultiTrigger os setters ou ações associados quando todas as condições são verdadeiras (operação binária AND
).
Para umaMultiDataTrigger, cada condição na coleção deve definir as propriedades e Value as Binding propriedades. Para obter mais informações, consulte Binding.
Uso do elemento propriedade XAML
<object>
<object.Conditions>
zeroOrMoreConditions
</object.Conditions>
</object>
Valores XAML
zeroOrMoreConditions
Zero ou mais Condition objetos.