Bagikan melalui


DataTrigger.Value Properti

Definisi

Mendapatkan atau mengatur nilai yang akan dibandingkan dengan nilai properti objek data.

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

Nilai Properti

Nilai defaultnya adalah null. Lihat juga bagian Pengecualian.

Atribut

Pengecualian

Ekspresi tidak didukung. Pengikatan tidak didukung.

Contoh

Dalam contoh berikut, ItemsSource dari terikat ke Places, objek ObservableCollection<T>Place.ListBox Place objek memiliki properti Name dan State.

ListBox Masing-masing ListBoxItem menampilkan Place objek. Style Dalam contoh diterapkan ke masing-masing ListBoxItem.

DataTrigger ditentukan sia-sia sehingga jika StatePlace item data adalah "WA", maka latar depan yang sesuai ListBoxItem diatur ke Merah.

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

Contoh berikut menunjukkan dua DataTriggers yang ditentukan dalam DataTemplate. DataTemplate diterapkan ke AuctionItem objek data (tidak ditampilkan dalam contoh ini), yang memiliki properti SpecialFeatures.

Yang pertama DataTrigger ditentukan sedih sehingga jika objek data memiliki SpecialFeatures nilai Color, maka item ditampilkan dengan latar belakang DodgerBlue dengan judul Navy. Jika objek data memiliki SpecialFeatures nilai Highlight, maka yang kedua DataTrigger akan aktif, menyebabkan item ditampilkan dengan batas Oranye dengan bintang.

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

Keterangan

Penggunaan Elemen Properti XAML

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

Nilai ini dibandingkan dengan nilai properti yang dihasilkan oleh Binding properti dari DataTrigger. Perbandingannya adalah pemeriksaan kesetaraan referensi. Jika dua nilai sama, maka tindakan atau setter terkait diterapkan.

Nota

Anda harus menentukan Binding properti dan Value pada DataTrigger pemicu data agar bermakna. Jika satu atau kedua properti tidak diatur, pengecualian akan dilemparkan.

Berlaku untuk

Lihat juga