DataTrigger.Value Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger det värde som ska jämföras med egenskapsvärdet för dataobjektet.
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
Egenskapsvärde
Standardvärdet är null. Se även avsnittet Undantag.
- Attribut
Undantag
Uttryck stöds inte. Bindningar stöds inte.
Exempel
I följande exempel ItemsSource är värdet ListBox för är bunden till Places, ett ObservableCollection<T> av Place objekten.
Place objekt har egenskaper Name och State.
Vart ListBoxItem och ett ListBox av objekten Place visas. I Style exemplet tillämpas på varje ListBoxItem.
DataTrigger Anges så att om State dataobjektet Place är "WA" anges förgrunden för motsvarande ListBoxItem till Röd.
<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>
I följande exempel visas två DataTriggers som definieras i en DataTemplate.
DataTemplate Tillämpas på AuctionItem dataobjekt (visas inte i det här exemplet), som har egenskapen SpecialFeatures.
Den första DataTrigger anges så att om dataobjektet har värdet SpecialFeaturesColor, visas objektet med en DodgerBlue-bakgrund med marintitlar. Om dataobjektet har värdet SpecialFeaturesHighlight, blir det andra DataTrigger aktivt, vilket gör att objektet visas med en orange kantlinje med en stjärna.
<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>
Kommentarer
Användning av XAML-egenskapselement
<object>
<object.Value>
Value
</object.Value>
</object>
Det här värdet jämförs med det egenskapsvärde som genereras av Binding egenskapen för DataTrigger. Jämförelsen är en referensjämlikhetskontroll. Om de två värdena är lika tillämpas de associerade åtgärderna eller setters.
Note
Du måste ange både Binding egenskaperna och Value på en DataTrigger för att datautlösaren ska vara meningsfull. Om en eller båda egenskaperna inte har angetts utlöses ett undantag.