DataTrigger.Value Eigenschap

Definitie

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.

Van toepassing op

Zie ook