Partager via


DataTrigger.Value Propriété

Définition

Obtient ou définit la valeur à comparer à la valeur de 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é

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, l’objet ItemsSourceListBox est lié à Places, d’objets ObservableCollection<T>Place . Place les objets ont des propriétés Name et State.

Chacun ListBoxItem des affichages d’un ListBoxPlace objet. L’exemple Style est appliqué à chaque ListBoxItem.

Il DataTrigger est spécifié de sorte que si l’élément PlaceState de données 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 deux DataTriggers définies dans un DataTemplate. L’objet DataTemplate est appliqué aux AuctionItem objets de données (non affichés dans cet exemple), qui ont la propriété SpecialFeatures.

Le premier DataTrigger est spécifié de sorte que si l’objet de données a la SpecialFeatures valeur Color, l’élément est affiché avec un arrière-plan DodgerBlue avec des titres Navy. Si l’objet de données a une SpecialFeatures valeur Highlight, 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 de l’élément 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 d’égalité de référence. Si les deux valeurs sont égales, les actions ou les setters associés sont appliqués.

Note

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

S’applique à

Voir aussi