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 effectue 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, l’objet ItemsSourceListBox est lié à Places, un ObservableCollection<T> objet Place . Les objets Place ont des propriétés Nom et État.
Chacun ListBoxItem des ListBox objets 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 du 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 DataTrigger, une BeginStoryboard action et une Storyboard propriété 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, ControlTemplateet DataTemplate 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 Employee , vous souhaiterez peut-être que la couleur de premier plan soit différente en fonction de 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 de la création de modèles de données.
Notez que vous devez spécifier à la fois les propriétés et Value les Binding propriétés d’un DataTrigger déclencheur de données pour qu’elles soient significatives. 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 se composer que d’objets Setter . L’ajout d’un Setter enfant à un DataTrigger objet l’ajoute implicitement à l’objet SetterBaseCollectionDataTrigger . EventSetter les objets ne sont pas pris en charge ; prend uniquement Style.Setters en charge les EventSetter objets.
Constructeurs
| Nom | Description |
|---|---|
| DataTrigger() |
Initialise une nouvelle instance de la classe DataTrigger. |
Propriétés
| Nom | Description |
|---|---|
| Binding |
Obtient ou définit la liaison qui produit la valeur de propriété de l’objet de données. |
| DependencyObjectType |
Obtient le DependencyObjectType type CLR de cette instance. (Hérité de DependencyObject) |
| Dispatcher |
Obtient ce Dispatcher qui DispatcherObject est associé. (Hérité de DispatcherObject) |
| EnterActions |
Obtient une collection d’objets TriggerAction à appliquer lorsque l’objet déclencheur devient actif. Cette propriété ne s’applique pas à la EventTrigger classe. (Hérité de TriggerBase) |
| ExitActions |
Obtient une collection d’objets TriggerAction à appliquer lorsque l’objet déclencheur devient inactif. Cette propriété ne s’applique pas à la EventTrigger classe. (Hérité de TriggerBase) |
| IsSealed |
Obtient une valeur qui indique si cette instance est actuellement scellée (en lecture seule). (Hérité de DependencyObject) |
| Setters |
Obtient une collection d’objets, qui décrivent les valeurs de Setter 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 propriété de l’objet de données. |
Méthodes
| Nom | Description |
|---|---|
| CheckAccess() |
Détermine si le thread appelant a accès à ce DispatcherObjectfichier . (Hérité de DispatcherObject) |
| ClearValue(DependencyProperty) |
Efface la valeur locale d’une propriété. La propriété à effacer est spécifiée par un DependencyProperty identificateur. (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 un DependencyPropertyKey. (Hérité de DependencyObject) |
| CoerceValue(DependencyProperty) |
Force la valeur de la propriété de dépendance spécifiée. Pour ce faire, appelez n’importe quelle CoerceValueCallback fonction spécifiée dans les métadonnées de propriété pour la propriété de dépendance telle qu’elle existe sur l’appel DependencyObject. (Hérité de DependencyObject) |
| Equals(Object) |
Détermine si un élément fourni DependencyObject est équivalent à l’actuel DependencyObject. (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 la 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) |
Évalue à nouveau la valeur effective de la propriété de dépendance spécifiée. (Hérité de DependencyObject) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Appelé chaque fois que la valeur effective d’une propriété de dépendance sur celle-ci 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, le cas échéant. (Hérité de DependencyObject) |
| ReceiveMarkupExtension(Object, XamlSetMarkupExtensionEventArgs) |
Gère les cas où une extension de balisage fournit une valeur pour une propriété d’un DataTrigger objet. |
| SetCurrentValue(DependencyProperty, Object) |
Définit la valeur d’une propriété de dépendance sans modifier sa source de valeur. (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() |
Applique que le thread appelant a accès à ce DispatcherObjectfichier . (Hérité de DispatcherObject) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IAddChild.AddChild(Object) |
Ajoute un objet enfant. |
| IAddChild.AddText(String) |
Ajoute le contenu texte d’un nœud à l’objet. |