MultiDataTrigger Třída
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í.
Představuje trigger, který použije hodnoty vlastností nebo provede akce, když svázaná data splňují sadu podmínek.
public ref class MultiDataTrigger sealed : System::Windows::TriggerBase, System::Windows::Markup::IAddChild
[System.Windows.Markup.ContentProperty("Setters")]
public sealed class MultiDataTrigger : System.Windows.TriggerBase, System.Windows.Markup.IAddChild
[<System.Windows.Markup.ContentProperty("Setters")>]
type MultiDataTrigger = class
inherit TriggerBase
interface IAddChild
Public NotInheritable Class MultiDataTrigger
Inherits TriggerBase
Implements IAddChild
- Dědičnost
- Atributy
- Implementuje
Příklady
V následujícím příkladu ItemsSource je vlastnost ListBox vázána na Placesobjekty ObservableCollection<T>Place .
Place objekty mají vlastnosti Name a State. Definice Place a Places není zobrazena.
Každý ListBoxItem z nich ListBox zobrazí Place objekt. V Style příkladu se použije na každý z nich ListBoxItem. Prvky ConditionMultiDataTrigger neurčí, že pokud Name jsou Portland a State z Place datové položky a OR v uvedeném pořadí, pak pozadí odpovídající ListBoxItem je 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 s tím rozdílem MultiTrigger, že podmínky a MultiDataTrigger jsou založeny na hodnotách vlastností vázaných dat, nikoli UIElementna základě podmínek . V parametru MultiDataTriggerje splněna podmínka, pokud hodnota vlastnosti datové položky odpovídá zadanému Value. K použití změn nebo spuštění akcí při splnění všech podmínek pak můžete použítttery nebo EnterActions vlastnosti a ExitActions vlastnosti.
Setters Vlastnost objektu MultiDataTrigger se může skládat pouze z Setter objektů. Přidání podřízeného Setter objektu do objektu MultiDataTrigger jej implicitně přidá do objektu SetterBaseCollectionMultiDataTrigger . EventSetterobjekty nejsou podporovány; podporuje EventSetter pouze Style.Setters objekty.
Informace o tom, kdy použít triggery a kdy použít jiné techniky, naleznete v tématu Přehled šablon dat.
Konstruktory
| Name | Description |
|---|---|
| MultiDataTrigger() |
Inicializuje novou instanci MultiDataTrigger třídy. |
Vlastnosti
| Name | Description |
|---|---|
| Conditions |
Získá kolekci Condition objektů. Změny hodnot vlastností se použijí při splnění všech podmínek v kolekci. |
| DependencyObjectType |
DependencyObjectType Získá ten, který zabalí typ CLR této instance. (Zděděno od DependencyObject) |
| Dispatcher |
Dispatcher Získá toto DispatcherObject je přidružené. (Zděděno od DispatcherObject) |
| EnterActions |
Získá kolekci TriggerAction objektů, které se použijí při aktivaci objektu triggeru. Tato vlastnost se nevztahuje na EventTrigger třídu. (Zděděno od TriggerBase) |
| ExitActions |
Získá kolekci TriggerAction objektů, které se použijí, když se objekt triggeru stane neaktivní. Tato vlastnost se nevztahuje na EventTrigger třídu. (Zděděno od TriggerBase) |
| IsSealed |
Získá hodnotu, která označuje, zda je tato instance aktuálně zapečetěna (jen pro čtení). (Zděděno od DependencyObject) |
| Setters |
Získá kolekci Setter objektů, které popisují hodnoty vlastnosti, které se mají použít, když jsou splněny všechny podmínky MultiDataTrigger . |
Metody
| Name | Description |
|---|---|
| CheckAccess() |
Určuje, zda volající vlákno má přístup k tomuto DispatcherObject. (Zděděno od DispatcherObject) |
| ClearValue(DependencyProperty) |
Vymaže místní hodnotu vlastnosti. Vlastnost, která se má vymazat, je určena identifikátorem DependencyProperty . (Zděděno od DependencyObject) |
| ClearValue(DependencyPropertyKey) |
Vymaže místní hodnotu vlastnosti jen pro čtení. Vlastnost, která má být vymazána, je určena parametrem DependencyPropertyKey. (Zděděno od DependencyObject) |
| CoerceValue(DependencyProperty) |
Převede hodnotu zadané vlastnosti závislosti. Toho se dosahuje vyvoláním jakékoli CoerceValueCallback funkce zadané v metadatech vlastností pro vlastnost závislosti, protože existuje ve volání DependencyObject. (Zděděno od DependencyObject) |
| Equals(Object) |
Určuje, zda je poskytnutá DependencyObject hodnota ekvivalentní aktuálnímu DependencyObject. (Zděděno od DependencyObject) |
| GetHashCode() |
Získá hash kód pro tento DependencyObject. (Zděděno od DependencyObject) |
| GetLocalValueEnumerator() |
Vytvoří specializovaný enumerátor pro určení, které vlastnosti závislosti mají místně nastavené hodnoty na tomto DependencyObject. (Zděděno od DependencyObject) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| GetValue(DependencyProperty) |
Vrátí aktuální efektivní hodnotu vlastnosti závislosti na této instanci objektu DependencyObject. (Zděděno od DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Znovu vyhodnotí efektivní hodnotu pro zadanou vlastnost závislosti. (Zděděno od DependencyObject) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Vyvolána vždy, když byla aktualizována efektivní hodnota jakékoli vlastnosti závislosti na této DependencyObject vlastnosti. Konkrétní vlastnost závislosti, která se změnila, je hlášena v datech události. (Zděděno od DependencyObject) |
| ReadLocalValue(DependencyProperty) |
Vrátí místní hodnotu vlastnosti závislosti, pokud existuje. (Zděděno od DependencyObject) |
| SetCurrentValue(DependencyProperty, Object) |
Nastaví hodnotu vlastnosti závislosti beze změny jejího zdroje hodnot. (Zděděno od DependencyObject) |
| SetValue(DependencyProperty, Object) |
Nastaví místní hodnotu vlastnosti závislosti určenou jeho identifikátorem vlastnosti závislosti. (Zděděno od DependencyObject) |
| SetValue(DependencyPropertyKey, Object) |
Nastaví místní hodnotu vlastnosti závislosti jen pro čtení určenou identifikátorem DependencyPropertyKey vlastnosti závislosti. (Zděděno od DependencyObject) |
| ShouldSerializeProperty(DependencyProperty) |
Vrátí hodnotu, která určuje, zda procesy serializace mají serializovat hodnotu pro zadanou vlastnost závislosti. (Zděděno od DependencyObject) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
| VerifyAccess() |
Vynucuje, že volající vlákno má přístup k tomuto DispatcherObject. (Zděděno od DispatcherObject) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| IAddChild.AddChild(Object) |
Přidá podřízený objekt. |
| IAddChild.AddText(String) |
Přidá do objektu textový obsah uzlu. |