Share via


DataTrigger.Value Özellik

Tanım

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.

Şunlara uygulanır

Ayrıca bkz.