DataTrigger.Value Propriété

Définition

Obtient ou définit la valeur à comparer à la valeur de la propriété de l’objet de données.

public:
 property System::Object ^ Value { System::Object ^ get(); void set(System::Object ^ value); };
[System.Windows.Localizability(System.Windows.LocalizationCategory.None, Readability=System.Windows.Readability.Unreadable)]
[System.Windows.Markup.DependsOn("Binding")]
public object Value { get; set; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.None, Readability=System.Windows.Readability.Unreadable)>]
[<System.Windows.Markup.DependsOn("Binding")>]
member this.Value : obj with get, set
Public Property Value As Object

Valeur de propriété

Object

La valeur par défaut est null. Consultez également la section Exceptions.

Attributs

Exceptions

Les expressions ne sont pas prises en charge. Les liaisons ne sont pas prises en charge.

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 deux DataTriggers qui sont définis dans un DataTemplate. L’objet DataTemplate est appliqué aux objets de données AuctionItem (non affichés dans cet exemple), qui ont la propriété SpecialFeatures. Consultez la démonstration de liaison de données pour obtenir l’exemple complet.

Le premier DataTrigger est spécifié de sorte que si l’objet de données a une valeur SpecialFeatures de Color, l’élément est affiché avec un arrière-plan DodgerBlue avec des titres marine. Si l’objet de données a une valeur SpecialFeatures de Mise en surbrillance, la seconde DataTrigger est active, ce qui entraîne l’affichage de l’élément avec une bordure Orange avec une étoile.

<DataTemplate.Triggers>
    <DataTrigger Binding="{Binding Path=SpecialFeatures}">
        <DataTrigger.Value>
            <src:SpecialFeatures>Color</src:SpecialFeatures>
        </DataTrigger.Value>
      <DataTrigger.Setters>
        <Setter Property="BorderBrush" Value="DodgerBlue" TargetName="border" />
        <Setter Property="Foreground" Value="Navy" TargetName="descriptionTitle" />
        <Setter Property="Foreground" Value="Navy" TargetName="currentPriceTitle" />
        <Setter Property="BorderThickness" Value="3" TargetName="border" />
        <Setter Property="Padding" Value="5" TargetName="border" />
      </DataTrigger.Setters>
    </DataTrigger>
    <DataTrigger Binding="{Binding Path=SpecialFeatures}">
        <DataTrigger.Value>
            <src:SpecialFeatures>Highlight</src:SpecialFeatures>
        </DataTrigger.Value>
        <Setter Property="BorderBrush" Value="Orange" TargetName="border" />
        <Setter Property="Foreground" Value="Navy" TargetName="descriptionTitle" />
        <Setter Property="Foreground" Value="Navy" TargetName="currentPriceTitle" />
        <Setter Property="Visibility" Value="Visible" TargetName="star" />
        <Setter Property="BorderThickness" Value="3" TargetName="border" />
        <Setter Property="Padding" Value="5" TargetName="border" />
    </DataTrigger>
</DataTemplate.Triggers>

Remarques

Utilisation des éléments de propriété XAML

<object>  
  <object.Value>  
    Value  
  </object.Value>  
</object>  

Cette valeur est comparée à la valeur de propriété produite par la Binding propriété du DataTrigger. La comparaison est un contrôle de l'égalité de la référence. Si les deux valeurs sont égales, les actions ou les setters associés sont appliqués.

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 définies, une exception est levée.

S’applique à

Voir aussi