DataTrigger.Value Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta il valore da confrontare con il valore della proprietà dell'oggetto dati.
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
Valore della proprietà
Il valore predefinito è null. Vedere anche la sezione Eccezioni.
- Attributi
Eccezioni
Le espressioni non sono supportate. Le associazioni non sono supportate.
Esempio
Nell'esempio seguente, l'oggetto ItemsSource di ListBox è associato a Places, un ObservableCollection<T> di Place oggetti .
Place gli oggetti hanno proprietà Name e State.
Ognuno ListBoxItem di ListBox essi visualizza un Place oggetto . Nell'esempio Style viene applicato a ogni ListBoxItemoggetto .
Viene DataTrigger specificato in modo che se l'oggetto State dell'elemento Place di dati è "WA", il primo piano del corrispondente ListBoxItem viene impostato su Rosso.
<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>
Nell'esempio seguente vengono illustrati due DataTriggeroggetti definiti in un oggetto DataTemplate. L'oggetto DataTemplate viene applicato agli AuctionItem oggetti dati (non illustrati in questo esempio), che hanno la proprietà SpecialFeatures.
Il primo DataTrigger viene specificato in modo che, se l'oggetto dati ha un SpecialFeatures valore , Colorl'elemento viene visualizzato con uno sfondo DodgerBlue con titoli Navy. Se l'oggetto dati ha un SpecialFeatures valore di Highlight, il secondo DataTrigger sarà attivo, causando la visualizzazione dell'elemento con un bordo arancione con una stella.
<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>
Commenti
Utilizzo dell'elemento della proprietà XAML
<object>
<object.Value>
Value
</object.Value>
</object>
Questo valore viene confrontato con il valore della proprietà prodotto dalla Binding proprietà dell'oggetto DataTrigger. Il confronto è un controllo di uguaglianza dei riferimenti. Se i due valori sono uguali, vengono applicate le azioni o i setter associati.
Annotazioni
È necessario specificare sia le Binding proprietà che Value su un DataTrigger per il trigger di dati per essere significative. Se una o entrambe le proprietà non sono impostate, viene generata un'eccezione.