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 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.