MultiDataTrigger.Conditions Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá kolekci Condition objektů. Změny hodnot vlastností se použijí při splnění všech podmínek v kolekci.
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
Hodnota vlastnosti
Kolekce objektů Condition. Výchozí hodnotou je prázdná kolekce.
Příklady
V následujícím příkladu ItemsSource je vlastnost ListBox vázána na Places
objekty ObservableCollection<T> Place
. Place
objekty mají vlastnosti Name
a State
. Definice Place
a Places
nezobrazuje se.
Každý ListBoxItem z nich ListBox zobrazí Place
objekt. V Style příkladu se použije u každého z nich ListBoxItem. Prvky Condition specifikaMultiDataTrigger, že pokud Name
jsou Portland
položky a State
Place
položky dat a OR
v uvedeném pořadí, je pozadí odpovídajících ListBoxItem položek nastaveno na 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>
Poznámky
Objekt MultiDataTrigger se podobá objektu MultiTrigger, s výjimkou toho, že podmínky a MultiDataTrigger jsou založeny na hodnotách vlastností svázaných dat namísto UIElementhodnot vázaných dat . MultiDataTriggerPodmínka je splněna, pokud hodnota vlastnosti datové položky odpovídá zadané Value. Tato hodnota se nejprve převede na typ hodnoty vazby, pokud je to možné, a pak se tyto dvě hodnoty porovnávají pomocí Object.Equals
metody. Použije MultiTrigger přidružené settery nebo akce, pokud jsou všechny podmínky pravdivé (binární AND
operace).
Pro každou podmínku MultiDataTriggerv kolekci musí být nastavena Binding jak podmínka, tak Value vlastnosti. Další informace naleznete v tématu Binding.
Použití elementu vlastnosti XAML
<object>
<object.Conditions>
zeroOrMoreConditions
</object.Conditions>
</object>
Hodnoty XAML
zeroOrMoreConditions
Nula nebo více Condition objektů.