DataTrigger.Value Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen des Werts, der mit dem Eigenschaftswert des Datenobjekts verglichen werden soll.
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
Eigenschaftswert
Der Standardwert ist null. Siehe auch den Abschnitt "Ausnahmen".
- Attribute
Ausnahmen
Ausdrücke werden nicht unterstützt. Bindungen werden nicht unterstützt.
Beispiele
Im folgenden Beispiel ist dies ItemsSourceListBox an Placeseine ObservableCollection<T> von Place Objekten gebunden.
Place Objekte verfügen über Eigenschaften Name und State.
Jedes ListBoxItem der ListBox Objekte zeigt ein Place Objekt an. Das Style im Beispiel wird auf die einzelnen ListBoxItem.
Der DataTrigger Wert wird so angegeben, dass der Vordergrund des entsprechenden ListBoxItem Elements auf "Rot" festgelegt ist, wenn das StatePlace Datenelement "WA" ist.
<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>
Das folgende Beispiel zeigt zwei DataTriggers, die in einer DataTemplate. Dies DataTemplate wird auf AuctionItem Datenobjekte angewendet (in diesem Beispiel nicht dargestellt), die die Eigenschaft SpecialFeaturesaufweisen.
The first DataTrigger is specified such that if the data object has a SpecialFeatures value of Color, then the item is displayed with a DodgerBlue background with Navy titles. Wenn das Datenobjekt einen SpecialFeatures Wert aufweist Highlight, ist die zweite DataTrigger aktiv, sodass das Element mit einem orangefarbenen Rahmen mit einem Stern angezeigt wird.
<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>
Hinweise
XAML-Eigenschaftselementverwendung
<object>
<object.Value>
Value
</object.Value>
</object>
Dieser Wert wird mit dem Eigenschaftswert verglichen, der von der Binding Eigenschaft der DataTrigger. Der Vergleich ist eine Referenzgleichstellungsprüfung. Wenn die beiden Werte gleich sind, werden die zugeordneten Aktionen oder Setter angewendet.
Hinweis
Sie müssen sowohl die Eigenschaften als Value auch die Binding Eigenschaften eines DataTrigger Datentriggers angeben, damit sie sinnvoll sind. Wenn eine oder beide Eigenschaften nicht festgelegt sind, wird eine Ausnahme ausgelöst.