Freigeben über


DataTrigger.Value Eigenschaft

Definition

Ruft den Wert ab, mit dem der Eigenschaftswert des Datenobjekts verglichen wird, bzw. legt diesen fest.

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. Weitere Informationen finden Sie im Abschnitt für Ausnahmen.

Attribute

Ausnahmen

Ausdrücke werden nicht unterstützt. Bindungen werden nicht unterstützt.

Beispiele

Im folgenden Beispiel ist der ItemsSource von ListBox an Places gebunden, ein ObservableCollection<T> von Place-Objekten . Place-Objekte verfügen über die Eigenschaften Name und State.

Jedes ListBoxItem der ListBox zeigt ein Place-Objekt an. Im Style Beispiel wird auf jede ListBoxItemangewendet.

Der DataTrigger wird so angegeben, dass, wenn der Status des Place-Datenelements "WA" lautet, der Vordergrund des entsprechenden ListBoxItem auf Rot festgelegt 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 einem DataTemplatedefiniert sind. Wird DataTemplate auf AuctionItem-Datenobjekte angewendet (in diesem Beispiel nicht dargestellt), die über die Eigenschaft SpecialFeatures verfügen. Das vollständige Beispiel finden Sie unter Demo zur Datenbindung .

Die erste DataTrigger wird so angegeben, dass das Element mit einem DodgerBlue-Hintergrund mit Navy-Titeln angezeigt wird, wenn das Datenobjekt über den SpecialFeatures-WertColor verfügt. Wenn das Datenobjekt über den SpecialFeatures-WertHighlight verfügt, ist das zweite DataTrigger Element aktiv, wodurch 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

Verwendung von XAML-Eigenschaftenelementen

<object>  
  <object.Value>  
    Value  
  </object.Value>  
</object>  

Dieser Wert wird mit dem Eigenschaftswert verglichen, der von der Binding -Eigenschaft des DataTriggererzeugt wird. Der Vergleich ist eine Verweisgleichheitsprüfung. Wenn die beiden Werte gleich sind, werden die zugeordneten Aktionen oder Setter angewendet.

Beachten Sie, dass Sie sowohl die Binding Eigenschaften als Value auch für eine DataTrigger angeben müssen, damit der Datentrigger sinnvoll ist. Wenn eine oder beide Eigenschaften nicht festgelegt sind, wird eine Ausnahme ausgelöst.

Gilt für:

Weitere Informationen