DataTrigger.Value Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt de waarde opgehaald of ingesteld die moet worden vergeleken met de eigenschapswaarde van het gegevensobject.
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
Waarde van eigenschap
De standaardwaarde is null. Zie ook de sectie Uitzonderingen.
- Kenmerken
Uitzonderingen
Expressies worden niet ondersteund. Bindingen worden niet ondersteund.
Voorbeelden
In het volgende voorbeeld is de afhankelijke ItemsSourcevan ListBox de Places objecten, een ObservableCollection<T> van Place de objecten.
Place objecten hebben eigenschappen Name en State.
Elk ListBoxItem van de ListBox objecten wordt weergegeven Place . Het Style in het voorbeeld wordt toegepast op elke ListBoxItem.
Het DataTrigger is zodanig opgegeven dat als het StatePlace gegevensitem 'WA' is, de voorgrond van de corresponderende ListBoxItem waarde is ingesteld op Rood.
<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>
In het volgende voorbeeld ziet u twee DataTriggers die zijn gedefinieerd in een DataTemplate. De DataTemplate eigenschap wordt toegepast op AuctionItem gegevensobjecten (niet weergegeven in dit voorbeeld), die de eigenschap SpecialFeatureshebben.
De eerste DataTrigger wordt zodanig opgegeven dat als het gegevensobject een SpecialFeatures waarde heeft, Colorhet item wordt weergegeven met een DodgerBlue-achtergrond met Marinetitels. Als het gegevensobject een SpecialFeatures waarde heeft van Highlight, is de tweede DataTrigger actief, waardoor het item wordt weergegeven met een oranje rand met een ster.
<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>
Opmerkingen
Gebruik van XAML-eigenschapselement
<object>
<object.Value>
Value
</object.Value>
</object>
Deze waarde wordt vergeleken met de eigenschapswaarde die wordt geproduceerd door de Binding eigenschap van de DataTrigger. De vergelijking is een referentie-gelijkheidscontrole. Als de twee waarden gelijk zijn, worden de bijbehorende acties of setters toegepast.
Note
U moet zowel de als Binding de Value eigenschappen op een DataTrigger opgeven om de gegevenstrigger zinvol te maken. Als een of beide eigenschappen niet zijn ingesteld, wordt er een uitzondering gegenereerd.