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
null
varsayılan değerdir. 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 değeri ListBox Place nesnesi olanYerler'eObservableCollection<T> bağlıdır. NesneleriName ve State özelliklerine sahiptir.
her ListBoxItem biri ListBox bir Place nesnesi görüntüler. Style örnekteki her öğesine ListBoxItemuygulanır.
veri öğesinin Durumunun "WA" olması durumunda ilgili ListBoxItem öğenin ön planı Kırmızı olarak ayarlı olacak şekilde belirtilir.DataTrigger
<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ği SpecialFeatures olan AuctionItem veri nesnelerine uygulanır (bu örnekte gösterilmez). Tam örnek için bkz. Veri Bağlama Tanıtımı .
İlkiDataTrigger, veri nesnesinin Color SpecialFeatures değerine sahip olması durumunda öğenin Navy başlıklarıyla DodgerBlue arka planıyla görüntülenmesini sağlar. Veri nesnesinin SpecialFeatures değeri Vurgula ise, ikinci DataTrigger nesne etkin olur ve bu da öğenin 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.
Veri tetikleyicisinin Binding anlamlı olması için üzerinde DataTrigger hem ve Value özelliklerini belirtmeniz gerektiğini unutmayın. Bir veya her iki özellik de ayarlanmadıysa, bir özel durum oluşturulur.