Aracılığıyla paylaş


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

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.

Şunlara uygulanır

Ayrıca bkz.