DataTrigger DataTrigger DataTrigger DataTrigger Class

Définition

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.Represents a trigger that applies property values or performs actions when the bound data meets a specified condition.

public ref 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
type DataTrigger = class
    inherit TriggerBase
    interface IAddChild
Public Class DataTrigger
Inherits TriggerBase
Implements IAddChild
Héritage
Attributs
Implémente

Exemples

Dans l’exemple suivant, le ItemsSource ListBox du est lié aux emplacements, un ObservableCollection<T> des objets de place .In the following example, the ItemsSource of the ListBox is bound to Places, an ObservableCollection<T> of Place objects. Les objets Place ont des propriétés nom et État.Place objects have properties Name and State.

Chaque ListBoxItem ListBox affiche un objet d' emplacement .Each ListBoxItem of the ListBox displays a Place object. Dans l’exemple, est appliqué à chaque ListBoxItem. StyleThe Style in the example is applied to each ListBoxItem.

Le DataTrigger est spécifié de telle sorte que si l' État de l’élément de données d' emplacement est «WA», alors ListBoxItem le premier plan du correspondant est défini sur rouge.The DataTrigger is specified such that if the State of the Place data item is "WA" then the foreground of the corresponding ListBoxItem is set to Red.

<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 un Storyboard pour animer une propriété lorsque les données liées répondent à une condition spécifiée.The following example shows how to use a DataTrigger, a BeginStoryboard action, and a Storyboard to animate a property when bound data meets a specified condition. L’exemple affiche des informations d’inventaire ListBox dans un contrôle.The example displays inventory information in a ListBox control. Il utilise un DataTrigger pour animer Opacity le de ListBoxItem chaque qui contient un livre en rupture de stock.It uses a DataTrigger to animate the Opacity of every ListBoxItem that contains an out-of-stock book.

<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, ControlTemplate etDataTemplate ont tous une collection de déclencheurs.Style, ControlTemplate, and DataTemplate all have a triggers collection. Un DataTrigger vous permet de définir des valeurs de propriété lorsque la valeur de propriété de l’objet de Valuedonnées correspond à un spécifié.A DataTrigger allows you to set property values when the property value of the data object matches a specified Value. Par exemple, si vous affichez une liste d' Employee objets, vous souhaiterez peut-être que la couleur de premier plan Employee's soit différente en fonction de chaque assiduité actuelle.For example, if you are displaying a list of Employee objects, you may want the foreground color to be different based on each Employee's current attendance. (Par exemple, Employees qui sont actuellement en congés 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 DataTemplateSelectorun.(For example, Employees who are currently on vacation are displayed with a purple foreground.) In some scenarios it may be more suitable to create a converter or to use a DataTemplateSelector. Pour plus d’informations, consultez vue d’ensemble des modèles de données.For more information, see the Data Templating Overview.

Notez que vous devez spécifier à la Binding fois Value les propriétés et DataTrigger sur un pour que le déclencheur de données soit explicite.Note that you must specify both the Binding and Value properties on a DataTrigger for the data trigger to be meaningful. Si l’une des propriétés ou les deux ne sont pas spécifiées, une exception est levée.If one or both of the properties are not specified, an exception is thrown.

La Setters propriété d’un DataTrigger objet peut uniquement être composée Setter d’objets.The Setters property of a DataTrigger object can only consist of Setter objects. L’ajout Setter d’un enfant DataTrigger à un objet l' SetterBaseCollection ajoute implicitement au pour DataTrigger l’objet.Adding a Setter child to a DataTrigger object implicitly adds it to the SetterBaseCollection for the DataTrigger object. EventSetterles objets ne sont pas pris en charge; prend Style.Setters uniquement EventSetter en charge les objets.EventSetter objects are not supported; only Style.Setters supports EventSetter objects.

Constructeurs

DataTrigger() DataTrigger() DataTrigger() DataTrigger()

Initialise une nouvelle instance de la classe DataTrigger.Initializes a new instance of the DataTrigger class.

Propriétés

Binding Binding Binding Binding

Obtient ou définit la liaison qui produit la valeur de la propriété de l'objet de données.Gets or sets the binding that produces the property value of the data object.

DependencyObjectType DependencyObjectType DependencyObjectType DependencyObjectType

Obtient le DependencyObjectType qui encapsule le type CLRCLR de cette instance.Gets the DependencyObjectType that wraps the CLRCLR type of this instance.

(Inherited from DependencyObject)
Dispatcher Dispatcher Dispatcher Dispatcher

Obtient le Dispatcher associé à DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
EnterActions EnterActions EnterActions EnterActions

Obtient une collection d’objets TriggerAction à appliquer quand l’objet de déclencheur devient actif.Gets a collection of TriggerAction objects to apply when the trigger object becomes active. Cette propriété ne s’applique pas à la classe EventTrigger.This property does not apply to the EventTrigger class.

(Inherited from TriggerBase)
ExitActions ExitActions ExitActions ExitActions

Obtient une collection d’objets TriggerAction à appliquer quand l’objet déclencheur devient inactif.Gets a collection of TriggerAction objects to apply when the trigger object becomes inactive. Cette propriété ne s’applique pas à la classe EventTrigger.This property does not apply to the EventTrigger class.

(Inherited from TriggerBase)
IsSealed IsSealed IsSealed IsSealed

Récupère une valeur qui indique si cette instance est actuellement sealed (en lecture seule).Gets a value that indicates whether this instance is currently sealed (read-only).

(Inherited from DependencyObject)
Setters Setters Setters 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.Gets a collection of Setter objects, which describe the property values to apply when the data item meets the specified condition.

Value Value Value Value

Obtient ou définit la valeur à comparer à la valeur de la propriété de l’objet de données.Gets or sets the value to be compared with the property value of the data object.

Méthodes

CheckAccess() CheckAccess() CheckAccess() CheckAccess()

Détermine si le thread appelant a accès à ce DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
ClearValue(DependencyProperty) ClearValue(DependencyProperty) ClearValue(DependencyProperty) ClearValue(DependencyProperty)

Efface la valeur locale d’une propriété.Clears the local value of a property. La propriété à effacer est spécifiée par un identificateur DependencyProperty.The property to be cleared is specified by a DependencyProperty identifier.

(Inherited from DependencyObject)
ClearValue(DependencyPropertyKey) ClearValue(DependencyPropertyKey) ClearValue(DependencyPropertyKey) ClearValue(DependencyPropertyKey)

Efface la valeur locale d’une propriété en lecture seule.Clears the local value of a read-only property. La propriété à effacer est spécifiée par DependencyPropertyKey.The property to be cleared is specified by a DependencyPropertyKey.

(Inherited from DependencyObject)
CoerceValue(DependencyProperty) CoerceValue(DependencyProperty) CoerceValue(DependencyProperty) CoerceValue(DependencyProperty)

Convertit la valeur de la propriété de dépendance spécifiée.Coerces the value of the specified dependency property. 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.This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(Inherited from DependencyObject)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Détermine si un DependencyObject fourni est équivalent au DependencyObject réel.Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Inherited from DependencyObject)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Obtient un code de hachage pour ce DependencyObject.Gets a hash code for this DependencyObject.

(Inherited from DependencyObject)
GetLocalValueEnumerator() GetLocalValueEnumerator() GetLocalValueEnumerator() 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.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Inherited from DependencyObject)
GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
GetValue(DependencyProperty) GetValue(DependencyProperty) GetValue(DependencyProperty) GetValue(DependencyProperty)

Retourne la valeur effective actuelle d’une propriété de dépendance sur cette instance d’un DependencyObject.Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Inherited from DependencyObject)
InvalidateProperty(DependencyProperty) InvalidateProperty(DependencyProperty) InvalidateProperty(DependencyProperty) InvalidateProperty(DependencyProperty)

Réévalue la valeur effective pour la propriété de dépendance spécifiéeRe-evaluates the effective value for the specified dependency property

(Inherited from DependencyObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs) OnPropertyChanged(DependencyPropertyChangedEventArgs) OnPropertyChanged(DependencyPropertyChangedEventArgs) 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.Invoked whenever the effective value of any dependency property on this DependencyObject has been updated. La propriété de dépendance spécifique qui a été modifiée est signalée dans les données d'événement.The specific dependency property that changed is reported in the event data.

(Inherited from DependencyObject)
ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty)

Retourne la valeur locale d’une propriété de dépendance, si elle existe.Returns the local value of a dependency property, if it exists.

(Inherited from DependencyObject)
ReceiveMarkupExtension(Object, XamlSetMarkupExtensionEventArgs) ReceiveMarkupExtension(Object, XamlSetMarkupExtensionEventArgs) ReceiveMarkupExtension(Object, XamlSetMarkupExtensionEventArgs) ReceiveMarkupExtension(Object, XamlSetMarkupExtensionEventArgs)

Gère des cas où une extension de balisage fournit une valeur pour une propriété d'un objet DataTrigger.Handles cases where a markup extension provides a value for a property of a DataTrigger object.

SetCurrentValue(DependencyProperty, Object) SetCurrentValue(DependencyProperty, Object) SetCurrentValue(DependencyProperty, Object) SetCurrentValue(DependencyProperty, Object)

Définit la valeur d’une propriété de dépendance sans modifier sa valeur source.Sets the value of a dependency property without changing its value source.

(Inherited from DependencyObject)
SetValue(DependencyProperty, Object) SetValue(DependencyProperty, Object) SetValue(DependencyProperty, Object) 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.Sets the local value of a dependency property, specified by its dependency property identifier.

(Inherited from DependencyObject)
SetValue(DependencyPropertyKey, Object) SetValue(DependencyPropertyKey, Object) SetValue(DependencyPropertyKey, Object) 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.Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Inherited from DependencyObject)
ShouldSerializeProperty(DependencyProperty) ShouldSerializeProperty(DependencyProperty) ShouldSerializeProperty(DependencyProperty) 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.Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Inherited from DependencyObject)
ToString() ToString() ToString() ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)
VerifyAccess() VerifyAccess() VerifyAccess() VerifyAccess()

Garantit que le thread appelant a accès à DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

Implémentations d’interfaces explicites

IAddChild.AddChild(Object) IAddChild.AddChild(Object) IAddChild.AddChild(Object) IAddChild.AddChild(Object)

Ajoute un objet enfant.Adds a child object.

IAddChild.AddText(String) IAddChild.AddText(String) IAddChild.AddText(String) IAddChild.AddText(String)

Ajoute le contenu textuel d’un nœud à l’objet.Adds the text content of a node to the object.

S’applique à

Voir aussi