DataTrigger Sınıf
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.
İlişkili veriler belirtilen bir koşula uyduğunda özellik değerleri uygulayan veya eylemler gerçekleştiren bir tetikleyiciyi temsil eder.
public ref class DataTrigger : System::Windows::TriggerBase, System::Windows::Markup::IAddChild
[System.Windows.Markup.ContentProperty("Setters")]
public class DataTrigger : System.Windows.TriggerBase, System.Windows.Markup.IAddChild
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.XamlSetMarkupExtension("ReceiveMarkupExtension")]
public class DataTrigger : System.Windows.TriggerBase, System.Windows.Markup.IAddChild
[<System.Windows.Markup.ContentProperty("Setters")>]
type DataTrigger = class
inherit TriggerBase
interface IAddChild
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.XamlSetMarkupExtension("ReceiveMarkupExtension")>]
type DataTrigger = class
inherit TriggerBase
interface IAddChild
Public Class DataTrigger
Inherits TriggerBase
Implements IAddChild
- Devralma
- Öznitelikler
- Uygulamalar
Örnekler
Aşağıdaki örnekte, ItemsSource öğesinin ListBox değeri Place nesnelerinden biri ObservableCollection<T> olan Yerler'e 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 Durumu "WA" ise ilgilinin ListBoxItem ön planı Kırmızı olarak ayarlanır.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, ilişkili veriler belirli bir DataTriggerBeginStoryboard koşula uygun olduğunda bir özelliğe animasyon eklemek için bir , eylemi ve Storyboard bir öğesinin nasıl kullanılacağı gösterilmektedir. Örnek, bir ListBox denetimde stok bilgilerini görüntüler. Stokta olmayan bir kitap içeren her ListBoxItem birinin animasyonunu oluşturmak için Opacity bir DataTrigger kullanır.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DataTriggerStoryboardExample">
<Page.Resources>
<XmlDataProvider x:Key="InventoryData" XPath="Inventory/Books">
<x:XData>
<Inventory xmlns="">
<Books>
<Book ISBN="0-7356-0562-9" Stock="in" Number="9">
<Title>XML in Action</Title>
<Summary>XML Web Technology</Summary>
</Book>
<Book ISBN="0-7356-1370-2" Stock="in" Number="8">
<Title>Programming Microsoft Windows With C#</Title>
<Summary>C# Programming using the .NET Framework</Summary>
</Book>
<Book ISBN="0-7356-1288-9" Stock="out" Number="7">
<Title>Inside C#</Title>
<Summary>C# Language Programming</Summary>
</Book>
<Book ISBN="0-7356-1377-X" Stock="in" Number="5">
<Title>Introducing Microsoft .NET</Title>
<Summary>Overview of .NET Technology</Summary>
</Book>
<Book ISBN="0-7356-1448-2" Stock="out" Number="4">
<Title>Microsoft C# Language Specifications</Title>
<Summary>The C# language definition</Summary>
</Book>
</Books>
<CDs>
<CD Stock="in" Number="3">
<Title>Classical Collection</Title>
<Summary>Classical Music</Summary>
</CD>
<CD Stock="out" Number="9">
<Title>Jazz Collection</Title>
<Summary>Jazz Music</Summary>
</CD>
</CDs>
</Inventory>
</x:XData>
</XmlDataProvider>
<Style x:Key="AnimatedListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="Margin" Value="0,2,0,2" />
<Setter Property="Padding" Value="0,2,0,2" />
<Style.Triggers>
<DataTrigger
Binding="{Binding XPath=@Stock}"
Value="out">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
From="0.25" To="0.5" Duration="0:0:1"
RepeatBehavior="Forever"
AutoReverse="True"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard FillBehavior="Stop">
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="1" Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Page.Resources>
<StackPanel>
<ListBox HorizontalAlignment="Center"
ItemContainerStyle="{StaticResource AnimatedListBoxItemStyle}"
Padding="2">
<ListBox.ItemsSource>
<Binding Source="{StaticResource InventoryData}"
XPath="*"/>
</ListBox.ItemsSource>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock FontSize="12" Margin="0,0,10,0">
<TextBlock.Text>
<Binding XPath="Title"/>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</Page>
Açıklamalar
Style, ControlTemplateve DataTemplate tümünün tetikleyici koleksiyonu vardır. A DataTrigger , veri nesnesinin özellik değeri belirtilen Valuebir ile eşleştiğinde özellik değerlerini ayarlamanıza olanak tanır. Örneğin, nesnelerin listesini görüntülüyorsanız, ön plan renginin Employee her Employee's geçerli katılıma göre farklı olmasını isteyebilirsiniz. (Örneğin, Employees şu anda tatilde olan kişiler mor ön plan ile görüntülenir.) Bazı senaryolarda dönüştürücü oluşturmak veya kullanmak DataTemplateSelectordaha uygun olabilir. Daha fazla bilgi için bkz. Veri Şablonu Oluşturmaya Genel Bakış.
Veri tetikleyicisinin Binding anlamlı olması için hem ve Value hem de özelliklerini DataTrigger belirtmeniz gerektiğini unutmayın. Özelliklerden biri veya her ikisi belirtilmezse, bir özel durum oluşturulur.
Bir SettersDataTrigger nesnenin özelliği yalnızca nesnelerden Setter oluşabilir. Bir Setter nesneye DataTrigger alt öğe eklemek, örtük olarak nesne için DataTrigger öğesine eklerSetterBaseCollection. EventSetter nesneler desteklenmez; yalnızca Style.Setters nesneleri destekler EventSetter .
Oluşturucular
| Name | Description |
|---|---|
| DataTrigger() |
DataTrigger sınıfının yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| Binding |
Veri nesnesinin özellik değerini üreten bağlamayı alır veya ayarlar. |
| DependencyObjectType |
DependencyObjectType Bu örneğin CLR türünü sarmalayan öğesini alır. (Devralındığı yer: DependencyObject) |
| Dispatcher |
Dispatcher Bunun DispatcherObject ilişkili olduğu öğesini alır. (Devralındığı yer: DispatcherObject) |
| EnterActions |
Tetikleyici nesnesi etkin olduğunda uygulanacak bir nesne koleksiyonu TriggerAction alır. Bu özellik sınıfı için EventTrigger geçerli değildir. (Devralındığı yer: TriggerBase) |
| ExitActions |
Tetikleyici nesnesi etkin olmadığında uygulanacak bir nesne koleksiyonu TriggerAction alır. Bu özellik sınıfı için EventTrigger geçerli değildir. (Devralındığı yer: TriggerBase) |
| IsSealed |
Bu örneğin şu anda korumalı (salt okunur) olup olmadığını gösteren bir değer alır. (Devralındığı yer: DependencyObject) |
| Setters |
Veri öğesi belirtilen koşulu karşıladığında uygulanacak özellik değerlerini açıklayan bir nesne koleksiyonu Setter alır. |
| Value |
Veri nesnesinin özellik değeriyle karşılaştırılacak değeri alır veya ayarlar. |
Yöntemler
| Name | Description |
|---|---|
| CheckAccess() |
Çağıran iş parçacığının bu DispatcherObjectöğesine erişimi olup olmadığını belirler. (Devralındığı yer: DispatcherObject) |
| ClearValue(DependencyProperty) |
Bir özelliğin yerel değerini temizler. Temizlenecek özellik bir DependencyProperty tanımlayıcı tarafından belirtilir. (Devralındığı yer: DependencyObject) |
| ClearValue(DependencyPropertyKey) |
Salt okunur özelliğin yerel değerini temizler. Temizlenecek özellik tarafından DependencyPropertyKeybelirtilir. (Devralındığı yer: DependencyObject) |
| CoerceValue(DependencyProperty) |
Belirtilen bağımlılık özelliğinin değerini zorlama. Bu, çağrısında CoerceValueCallbackvar olan bağımlılık özelliği için özellik meta verilerinde belirtilen herhangi bir DependencyObject işlevi çağırarak gerçekleştirilir. (Devralındığı yer: DependencyObject) |
| Equals(Object) |
Sağlanan DependencyObject öğesinin geçerli DependencyObjectile eşdeğer olup olmadığını belirler. (Devralındığı yer: DependencyObject) |
| GetHashCode() |
Bu DependencyObjectiçin bir karma kodu alır. (Devralındığı yer: DependencyObject) |
| GetLocalValueEnumerator() |
Hangi bağımlılık özelliklerinin bu DependencyObjectüzerinde yerel olarak ayarlı değerlere sahip olduğunu belirlemek için özel bir numaralandırıcı oluşturur. (Devralındığı yer: DependencyObject) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| GetValue(DependencyProperty) |
Bir öğesinin bu örneğindeki bir bağımlılık özelliğinin DependencyObjectgeçerli etkin değerini döndürür. (Devralındığı yer: DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Belirtilen bağımlılık özelliği için geçerli değeri yeniden değerlendirir. (Devralındığı yer: DependencyObject) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Bunun DependencyObject üzerindeki herhangi bir bağımlılık özelliğinin etkin değeri her güncelleştirildiğinde çağrılır. Değiştirilen belirli bağımlılık özelliği olay verilerinde bildirilir. (Devralındığı yer: DependencyObject) |
| ReadLocalValue(DependencyProperty) |
Varsa, bağımlılık özelliğinin yerel değerini döndürür. (Devralındığı yer: DependencyObject) |
| ReceiveMarkupExtension(Object, XamlSetMarkupExtensionEventArgs) |
Bir işaretleme uzantısının bir nesnenin DataTrigger özelliği için değer sağladığı durumları işler. |
| SetCurrentValue(DependencyProperty, Object) |
Bir bağımlılık özelliğinin değerini, değer kaynağını değiştirmeden ayarlar. (Devralındığı yer: DependencyObject) |
| SetValue(DependencyProperty, Object) |
Bağımlılık özelliği tanımlayıcısı tarafından belirtilen bir bağımlılık özelliğinin yerel değerini ayarlar. (Devralındığı yer: DependencyObject) |
| SetValue(DependencyPropertyKey, Object) |
Bağımlılık özelliğinin tanımlayıcısı tarafından belirtilen salt okunur bağımlılık özelliğinin DependencyPropertyKey yerel değerini ayarlar. (Devralındığı yer: DependencyObject) |
| ShouldSerializeProperty(DependencyProperty) |
Serileştirme işlemlerinin sağlanan bağımlılık özelliği için değeri serileştirmesi gerekip gerekmediğini gösteren bir değer döndürür. (Devralındığı yer: DependencyObject) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
| VerifyAccess() |
Çağıran iş parçacığının bu DispatcherObjectöğesine erişmesini zorlar. (Devralındığı yer: DispatcherObject) |
Belirtik Arabirim Kullanımları
| Name | Description |
|---|---|
| IAddChild.AddChild(Object) |
Bir alt nesne ekler. |
| IAddChild.AddText(String) |
Bir düğümün metin içeriğini nesnesine ekler. |