DataTrigger Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente un déclencheur qui applique des valeurs de propriété ou exécute des actions lorsque les données liées répondent à une condition spécifiée.
public ref class DataTrigger : System::Windows::TriggerBase, System::Windows::Markup::IAddChild
[System.Windows.Markup.ContentProperty("Setters")]
public class DataTrigger : System.Windows.TriggerBase, System.Windows.Markup.IAddChild
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.XamlSetMarkupExtension("ReceiveMarkupExtension")]
public class DataTrigger : System.Windows.TriggerBase, System.Windows.Markup.IAddChild
[<System.Windows.Markup.ContentProperty("Setters")>]
type DataTrigger = class
inherit TriggerBase
interface IAddChild
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.XamlSetMarkupExtension("ReceiveMarkupExtension")>]
type DataTrigger = class
inherit TriggerBase
interface IAddChild
Public Class DataTrigger
Inherits TriggerBase
Implements IAddChild
- Héritage
- Attributs
- Implémente
Exemples
Dans l’exemple suivant, celui-ci ItemsSource ListBox est lié à Places, un ObservableCollection<T> objet Place . Les objets placent des propriétés Nom et État.
Chacun d’entre ListBox eux ListBoxItem affiche un objet Place. L’exemple Style est appliqué à chaque ListBoxItem.
Il DataTrigger est spécifié de sorte que si l’état de l’élément de données Place est « WA », le premier plan de l’élément correspondant ListBoxItem est défini sur Rouge.
<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>
L’exemple suivant montre comment utiliser un , une DataTriggerBeginStoryboard action et un Storyboard pour animer une propriété lorsque les données liées répondent à une condition spécifiée. L’exemple affiche les informations d’inventaire dans un ListBox contrôle. Il utilise un DataTrigger pour animer tous Opacity ceux ListBoxItem qui contiennent un livre hors stock.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DataTriggerStoryboardExample">
<Page.Resources>
<XmlDataProvider x:Key="InventoryData" XPath="Inventory/Books">
<x:XData>
<Inventory xmlns="">
<Books>
<Book ISBN="0-7356-0562-9" Stock="in" Number="9">
<Title>XML in Action</Title>
<Summary>XML Web Technology</Summary>
</Book>
<Book ISBN="0-7356-1370-2" Stock="in" Number="8">
<Title>Programming Microsoft Windows With C#</Title>
<Summary>C# Programming using the .NET Framework</Summary>
</Book>
<Book ISBN="0-7356-1288-9" Stock="out" Number="7">
<Title>Inside C#</Title>
<Summary>C# Language Programming</Summary>
</Book>
<Book ISBN="0-7356-1377-X" Stock="in" Number="5">
<Title>Introducing Microsoft .NET</Title>
<Summary>Overview of .NET Technology</Summary>
</Book>
<Book ISBN="0-7356-1448-2" Stock="out" Number="4">
<Title>Microsoft C# Language Specifications</Title>
<Summary>The C# language definition</Summary>
</Book>
</Books>
<CDs>
<CD Stock="in" Number="3">
<Title>Classical Collection</Title>
<Summary>Classical Music</Summary>
</CD>
<CD Stock="out" Number="9">
<Title>Jazz Collection</Title>
<Summary>Jazz Music</Summary>
</CD>
</CDs>
</Inventory>
</x:XData>
</XmlDataProvider>
<Style x:Key="AnimatedListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="Margin" Value="0,2,0,2" />
<Setter Property="Padding" Value="0,2,0,2" />
<Style.Triggers>
<DataTrigger
Binding="{Binding XPath=@Stock}"
Value="out">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
From="0.25" To="0.5" Duration="0:0:1"
RepeatBehavior="Forever"
AutoReverse="True"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard FillBehavior="Stop">
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="1" Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Page.Resources>
<StackPanel>
<ListBox HorizontalAlignment="Center"
ItemContainerStyle="{StaticResource AnimatedListBoxItemStyle}"
Padding="2">
<ListBox.ItemsSource>
<Binding Source="{StaticResource InventoryData}"
XPath="*"/>
</ListBox.ItemsSource>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock FontSize="12" Margin="0,0,10,0">
<TextBlock.Text>
<Binding XPath="Title"/>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</Page>
Remarques
Style, et ControlTemplateDataTemplate tous ont une collection de déclencheurs. A DataTrigger vous permet de définir des valeurs de propriété lorsque la valeur de propriété de l’objet de données correspond à une valeur spécifiée Value. Par exemple, si vous affichez une liste d’objets, vous souhaiterez peut-être que la couleur du premier plan soit différente en fonction de Employee
chaque Employee's
présence actuelle. (Par exemple, Employees
qui sont actuellement en vacances sont affichés avec un premier plan violet.) Dans certains scénarios, il peut être plus approprié de créer un convertisseur ou d’utiliser un DataTemplateSelector. Pour plus d’informations, consultez la vue d’ensemble du templatage des données.
Notez que vous devez spécifier les propriétés et Value les Binding propriétés d’un DataTrigger déclencheur de données pour qu’il soit significatif. Si une ou les deux propriétés ne sont pas spécifiées, une exception est levée.
La Setters propriété d’un DataTrigger objet ne peut être constituée que d’objets Setter . L’ajout d’un enfant à un Setter objet l’ajoute implicitement à l’objet SetterBaseCollection DataTrigger.DataTrigger EventSetter les objets ne sont pas pris en charge ; prend uniquement Style.Setters en charge les EventSetter objets.
Constructeurs
DataTrigger() |
Initialise une nouvelle instance de la classe DataTrigger. |
Propriétés
Binding |
Obtient ou définit la liaison qui produit la valeur de la propriété de l'objet de données. |
DependencyObjectType |
Obtient le DependencyObjectType type CLR de cette instance. (Hérité de DependencyObject) |
Dispatcher |
Obtient le Dispatcher associé à DispatcherObject. (Hérité de DispatcherObject) |
EnterActions |
Obtient une collection d’objets TriggerAction à appliquer quand l’objet de déclencheur devient actif. Cette propriété ne s’applique pas à la classe EventTrigger. (Hérité de TriggerBase) |
ExitActions |
Obtient une collection d’objets TriggerAction à appliquer quand l’objet déclencheur devient inactif. Cette propriété ne s’applique pas à la classe EventTrigger. (Hérité de TriggerBase) |
IsSealed |
Récupère une valeur qui indique si cette instance est actuellement sealed (en lecture seule). (Hérité de DependencyObject) |
Setters |
Obtient une collection d'objets Setter, qui décrivent les valeurs de propriété à appliquer lorsque l'élément de données répond à la condition spécifiée. |
Value |
Obtient ou définit la valeur à comparer à la valeur de la propriété de l’objet de données. |
Méthodes
CheckAccess() |
Détermine si le thread appelant a accès à ce DispatcherObject. (Hérité de DispatcherObject) |
ClearValue(DependencyProperty) |
Efface la valeur locale d’une propriété. La propriété à effacer est spécifiée par un identificateur DependencyProperty. (Hérité de DependencyObject) |
ClearValue(DependencyPropertyKey) |
Efface la valeur locale d’une propriété en lecture seule. La propriété à effacer est spécifiée par DependencyPropertyKey. (Hérité de DependencyObject) |
CoerceValue(DependencyProperty) |
Convertit la valeur de la propriété de dépendance spécifiée. Pour cela, on appelle toute fonction CoerceValueCallback spécifiée dans les métadonnées de propriété pour la propriété de dépendance telle qu’elle existe sur le DependencyObject appelant. (Hérité de DependencyObject) |
Equals(Object) |
Détermine si un DependencyObject fourni est équivalent au DependencyObject réel. (Hérité de DependencyObject) |
GetHashCode() |
Obtient un code de hachage pour ce DependencyObject. (Hérité de DependencyObject) |
GetLocalValueEnumerator() |
Crée un énumérateur spécialisé pour déterminer quelles propriétés de dépendance ont des valeurs définies localement sur ce DependencyObject. (Hérité de DependencyObject) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
GetValue(DependencyProperty) |
Retourne la valeur effective actuelle d’une propriété de dépendance sur cette instance d’un DependencyObject. (Hérité de DependencyObject) |
InvalidateProperty(DependencyProperty) |
Réévalue la valeur effective de la propriété de dépendance spécifiée. (Hérité de DependencyObject) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Méthode appelée chaque fois que la valeur effective d’une propriété de dépendance sur ce DependencyObject a été mise à jour. La propriété de dépendance spécifique qui a changé est signalée dans les données d’événement. (Hérité de DependencyObject) |
ReadLocalValue(DependencyProperty) |
Retourne la valeur locale d’une propriété de dépendance, si elle existe. (Hérité de DependencyObject) |
ReceiveMarkupExtension(Object, XamlSetMarkupExtensionEventArgs) |
Gère des cas où une extension de balisage fournit une valeur pour une propriété d'un objet DataTrigger. |
SetCurrentValue(DependencyProperty, Object) |
Définit la valeur d’une propriété de dépendance sans modifier sa valeur source. (Hérité de DependencyObject) |
SetValue(DependencyProperty, Object) |
Définit la valeur locale d’une propriété de dépendance, spécifiée par son identificateur de propriété de dépendance. (Hérité de DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Définit la valeur locale d’une propriété de dépendance en lecture seule, spécifiée par l’identificateur DependencyPropertyKey de la propriété de dépendance. (Hérité de DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Retourne une valeur qui indique si les processus de sérialisation doivent sérialiser la valeur de la propriété de dépendance fournie. (Hérité de DependencyObject) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
VerifyAccess() |
Garantit que le thread appelant a accès à DispatcherObject. (Hérité de DispatcherObject) |
Implémentations d’interfaces explicites
IAddChild.AddChild(Object) |
Ajoute un objet enfant. |
IAddChild.AddText(String) |
Ajoute le contenu textuel d’un nœud à l’objet. |