DataTrigger.Value 속성

정의

데이터 개체의 속성 값과 비교할 값을 가져오거나 설정합니다.Gets or sets the value to be compared with the property value of the data object.

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; }
member this.Value : obj with get, set
Public Property Value As Object

속성 값

기본값은 null입니다.The default value is null. 예외 부분을 참조하십시오.See also the Exceptions section.

특성

예외

식이 지원되지 않는 경우.Expressions are not supported. 바인딩은 지원되지 않습니다.Bindings are not supported.

예제

다음 예제에서는 ItemsSourceListBox 바인딩되 위치, ObservableCollection<T>위치 개체입니다.In the following example, the ItemsSource of the ListBox is bound to Places, an ObservableCollection<T> of Place objects. 장소 개체 속성을 가질 이름 하 고 상태합니다.Place objects have properties Name and State.

ListBoxItem 의 합니다 ListBox 표시는 개체입니다.Each ListBoxItem of the ListBox displays a Place object. 합니다 Style 예제에서는 각각에 적용 됩니다 ListBoxItem합니다.The Style in the example is applied to each ListBoxItem.

DataTrigger 지정 되도록 경우는 상태 데이터 항목 "WA" 인 해당 전경 ListBoxItem 빨간색으로 설정 됩니다.The DataTrigger is specified such that if the State of the Place data item is "WA" then the foreground of the corresponding ListBoxItem is set to Red.

<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>

다음 예제에서는 두 개의 DataTrigger에 정의 된 s는 DataTemplate합니다.The following example shows two DataTriggers that are defined in a DataTemplate. 합니다 DataTemplate 에 적용 됩니다 AuctionItem 데이터 개체 (이 예제에 표시 되지 않음), 속성이 SpecialFeatures합니다.The DataTemplate is applied to AuctionItem data objects (not shown in this example), which have the property SpecialFeatures. 참조 데이터 바인딩 데모 전체 예제입니다.See Data Binding Demo for the complete example.

첫 번째 DataTrigger 지정 되도록 데이터 개체에는 SpecialFeatures 의 값 , 항목 남색 제목 DodgerBlue 배경을 표시 됩니다.The first DataTrigger is specified such that if the data object has a SpecialFeatures value of Color, then the item is displayed with a DodgerBlue background with Navy titles. 데이터 개체에는 SpecialFeatures강조 표시를 두 번째 DataTrigger 활성화 되어 있으므로 별표를 사용 하 여는 주황색 테두리와 함께 표시할 항목 수입니다.If the data object has a SpecialFeatures value of Highlight, then the second DataTrigger will be active, causing the item to be displayed with an Orange border with a star.

<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>

설명

XAML 속성 요소 사용XAML Property Element Usage

<object>  
  <object.Value>  
    Value  
  </object.Value>  
</object>  

이 값에서 생성 한 속성 값과 비교 됩니다는 Binding 의 속성을 DataTrigger입니다.This value is compared with the property value produced by the Binding property of the DataTrigger. 수행되는 비교 작업은 참조 일치 검사입니다.The comparison is a reference equality check. 두 값이 같으면 관련된 작업이 나 setter가 적용 됩니다.If the two values are equal, then the associated actions or setters are applied.

모두 지정 해야 합니다 BindingValue 속성에는 DataTrigger 의미 있는 데이터 트리거에 대 한.Note that you must specify both the Binding and Value properties on a DataTrigger for the data trigger to be meaningful. 속성 하나 또는 둘 다 설정 되지 않은 경우 예외가 throw 됩니다.If one or both properties are not set, an exception will be thrown.

적용 대상

추가 정보