DataTrigger.Value Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Veri nesnesinin özellik değeriyle karşılaştırılacak değeri alır veya ayarlar.
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
Özellik Değeri
Varsayılan değer null değeridir. Ayrıca Özel Durumlar bölümüne de bakın.
- Öznitelikler
Özel durumlar
İfadeler desteklenmez. Bağlamalar desteklenmez.
Örnekler
Aşağıdaki örnekte, ItemsSource öğesinin ListBox değeri nesnelerden oluşan Place bir ObservableCollection<T> öğesine bağlıdırPlaces.
Placenesneleri ve Stateözelliklerine Name sahiptir.
her ListBoxItem biri ListBox bir Place nesne görüntüler.
Style örnekteki her öğesine ListBoxItemuygulanır.
DataTrigger veri öğesinin "WA" olması durumunda StatePlace ilgili ListBoxItem öğenin ön planı Kırmızı olarak ayarlı olacak şekilde belirtilir.
<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>
Aşağıdaki örnekte, içinde DataTemplatetanımlanan iki DataTriggersn gösterilmektedir.
DataTemplate özelliğine SpecialFeaturessahip veri nesnelerine AuctionItem uygulanır (bu örnekte gösterilmez).
İlkiDataTrigger, veri nesnesinin değerine Colorsahip SpecialFeatures olması durumunda öğenin Donanma başlıklarıyla DodgerBlue arka planıyla görüntüleneceği şekilde belirtilir. Veri nesnesinin SpecialFeatures değeri Highlightise, ikinci DataTrigger nesne etkin olur ve bu da öğenin bir yıldızla Turuncu kenarlıkla görüntülenmesine neden olur.
<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>
Açıklamalar
XAML Özellik Öğesi Kullanımı
<object>
<object.Value>
Value
</object.Value>
</object>
Bu değer, özelliği tarafından Binding üretilen özellik DataTriggerdeğeriyle karşılaştırılır. Karşılaştırma bir başvuru eşitliği denetimidir. İki değer eşitse, ilişkili eylemler veya ayarlayıcılar uygulanır.
Uyarı
Veri tetikleyicisinin Binding anlamlı olması için hem DataTrigger ve Value hem de özelliklerini belirtmeniz gerekir. Özelliklerden biri veya her ikisi de ayarlanmamışsa bir özel durum oluşur.