DataTrigger.Value Właściwość

Definicja

Pobiera lub ustawia wartość do porównania z wartością właściwości obiektu danych.

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

Wartość właściwości

Object

Wartość domyślna to null. Zobacz również sekcję Wyjątki.

Atrybuty

Wyjątki

Wyrażenia nie są obsługiwane. Powiązania nie są obsługiwane.

Przykłady

W poniższym przykładzie element ItemsSource ListBox jest powiązany z miejscami, ObservableCollection<T> obiektami Place . Obiekty place mają właściwości Name (Nazwa ) i State (Stan).

Każdy ListBoxItem z nich ListBox wyświetla obiekt Place . Element Style w przykładzie jest stosowany do każdego ListBoxItemelementu .

Parametr DataTrigger jest określony tak, że jeśli element stanu miejsca danych to "WA", pierwszy plan odpowiedniego ListBoxItem elementu jest ustawiony na Czerwony.

<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>

W poniższym przykładzie przedstawiono dwa DataTriggers, które są zdefiniowane w elemecie DataTemplate. Obiekt DataTemplate jest stosowany do obiektów danych AuctionItem (nie pokazano w tym przykładzie), które mają właściwość SpecialFeatures. Zobacz Pokaz powiązania danych , aby zapoznać się z kompletnym przykładem.

Pierwszy DataTrigger jest określony tak, że jeśli obiekt danych ma wartość SpecialFeatures Color, element jest wyświetlany z tła DodgerBlue z tytułami Marynarki Wojennej. Jeśli obiekt danych ma wartość SpecialFeatures wyróżnienia, drugi DataTrigger będzie aktywny, co powoduje wyświetlenie elementu z obramowaniem Pomarańczowym z gwiazdką.

<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>

Uwagi

Użycie elementu właściwości języka XAML

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

Ta wartość jest porównywana z wartością właściwości utworzoną Binding przez właściwość DataTrigger. Porównanie jest sprawdzaniem równości odwołań. Jeśli dwie wartości są równe, zostaną zastosowane skojarzone akcje lub zestawy.

Należy pamiętać, że należy określić właściwości Binding i Value dla DataTrigger wyzwalacza danych, aby był zrozumiały. Jeśli nie ustawiono jednej lub obu właściwości, zostanie zgłoszony wyjątek.

Dotyczy

Zobacz też