DataTrigger.Value Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.