DataTrigger.Value Propriété
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.
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é
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.