DataTrigger Classe

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 du ListBox est lié à des emplacements, un ObservableCollection<T> d’objets 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 de la ListBox affiche un objet Place .Each ListBoxItem of the ListBox displays a Place object. Le Style dans l’exemple est appliqué à chaque ListBoxItem.The 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 le premier plan du ListBoxItem 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 une DataTrigger, une action BeginStoryboard et une 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 les informations d’inventaire dans un contrôle de ListBox.The example displays inventory information in a ListBox control. Il utilise un DataTrigger pour animer la Opacity de chaque ListBoxItem 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, ControlTemplateet DataTemplate ont tous une collection de déclencheurs.Style, ControlTemplate, and DataTemplate all have a triggers collection. Une DataTrigger vous permet de définir des valeurs de propriété lorsque la valeur de propriété de l’objet de données correspond à un Valuespé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’objets Employee, vous souhaiterez peut-être que la couleur de premier plan soit différente en fonction de chaque Employee's 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 un DataTemplateSelector.(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 fois les propriétés Binding et Value sur un DataTrigger 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 propriété Setters d’un objet DataTrigger peut uniquement être composée d’objets Setter.The Setters property of a DataTrigger object can only consist of Setter objects. L’ajout d’un Setter enfant à un objet DataTrigger l’ajoute implicitement au SetterBaseCollection pour l’objet DataTrigger.Adding a Setter child to a DataTrigger object implicitly adds it to the SetterBaseCollection for the DataTrigger object. les objets EventSetter ne sont pas pris en charge ; seul Style.Setters prend en charge les objets EventSetter.EventSetter objects are not supported; only Style.Setters supports EventSetter objects.

Constructeurs

DataTrigger()

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

Propriétés

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

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

(Hérité de DependencyObject)
Dispatcher

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

(Hérité de DispatcherObject)
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.

(Hérité de TriggerBase)
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.

(Hérité de TriggerBase)
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).

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

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()

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

(Hérité de DispatcherObject)
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.

(Hérité de DependencyObject)
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.

(Hérité de DependencyObject)
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.

(Hérité de DependencyObject)
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.

(Hérité de DependencyObject)
GetHashCode()

Obtient un code de hachage pour ce DependencyObject.Gets a hash code for this 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.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Hérité de DependencyObject)
GetType()

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

(Hérité de Object)
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.

(Hérité de DependencyObject)
InvalidateProperty(DependencyProperty)

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

(Hérité de DependencyObject)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(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.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 changé est signalée dans les données d’événement.The specific dependency property that changed is reported in the event data.

(Hérité de DependencyObject)
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.

(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.Handles cases where a markup extension provides a value for a property of a DataTrigger 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.

(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.Sets the local value of a dependency property, specified by its dependency property identifier.

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

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

(Hérité de DependencyObject)
ToString()

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

(Hérité de Object)
VerifyAccess()

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

(Hérité de DispatcherObject)

Implémentations d’interfaces explicites

IAddChild.AddChild(Object)

Ajoute un objet enfant.Adds a child object.

IAddChild.AddText(String)

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

S’applique à

Voir aussi