DataTrigger.Value Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu, která má být porovnána s hodnotou vlastnosti datového objektu.
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
Hodnota vlastnosti
Výchozí hodnota je null. Viz také část Výjimky.
- Atributy
Výjimky
Výrazy nejsou podporovány. Vazby nejsou podporovány.
Příklady
V následujícím příkladu je vázán na , objekty ObservableCollection<T>Place.PlacesItemsSourceListBox
Place objekty mají vlastnosti Name a State.
Každý ListBoxItem z nich ListBox zobrazí Place objekt. V Style příkladu se použije na každý z nich ListBoxItem.
Určuje DataTrigger se tak, že pokud State je datová položka "WA", pak popředí odpovídající ListBoxItem položky Place je nastaveno na červenou.
<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>
Následující příklad ukazuje dva DataTriggers, které jsou definovány v .DataTemplate Použije se DataTemplate u AuctionItem datových objektů (v tomto příkladu se nezobrazuje), které mají vlastnost SpecialFeatures.
První DataTrigger je určen tak, že pokud datový objekt má SpecialFeatures hodnotu Color, pak položka se zobrazí s DodgerBlue pozadí s názvy Navy. Pokud má datový objekt SpecialFeatures hodnotu Highlight, bude druhý DataTrigger aktivní, což způsobí zobrazení položky s oranžovým ohraničení hvězdičkou.
<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>
Poznámky
Použití elementu vlastnosti XAML
<object>
<object.Value>
Value
</object.Value>
</object>
Tato hodnota je porovnána s hodnotou vlastnosti vytvořenou BindingDataTriggervlastností . Porovnání je kontrola rovnosti odkazů. Pokud jsou tyto dvě hodnoty stejné, použijí se přidružené akce nebo settery.
Poznámka:
Pro trigger dat musíte zadat jak BindingValue vlastnosti, tak i vlastnosti DataTrigger , které mají být smysluplné. Pokud jedna nebo obě vlastnosti nejsou nastavené, vyvolá se výjimka.