Udostępnij za pośrednictwem


MultiDataTrigger.Conditions Właściwość

Definicja

Pobiera kolekcję Condition obiektów. Zmiany wartości właściwości są stosowane, gdy zostaną spełnione wszystkie warunki w kolekcji.

public:
 property System::Windows::ConditionCollection ^ Conditions { System::Windows::ConditionCollection ^ get(); };
public System.Windows.ConditionCollection Conditions { get; }
member this.Conditions : System.Windows.ConditionCollection
Public ReadOnly Property Conditions As ConditionCollection

Wartość właściwości

ConditionCollection

Kolekcja obiektów Condition. Wartością domyślną jest pusta kolekcja.

Przykłady

W poniższym przykładzie ItemsSource właściwość ListBox obiektu jest powiązana z Placesobiektem ObservableCollection<T> Place . Place obiekty mają właściwości Name i State. Definicja i Place Places nie są wyświetlane.

Każdy ListBoxItem z nich ListBox wyświetla Place obiekt. Element Style w przykładzie jest stosowany do każdego ListBoxItemelementu . Condition Elementy MultiDataTrigger elementu określają, że jeśli Name element danych i State PlacePortland i OR odpowiednio, tło odpowiadające ListBoxItem mu jest ustawione na Cyanwartość .

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

Uwagi

MultiDataTrigger Obiekt jest podobny do MultiTriggerobiektu , z tą różnicą, że warunki obiektu MultiDataTrigger są oparte na wartościach właściwości powiązanych danych zamiast tych UIElementz . W elemencie MultiDataTriggerwarunek jest spełniony, gdy wartość właściwości elementu danych jest zgodna z określoną wartością Value. Ta wartość jest najpierw konwertowana na typ powiązania, jeśli to możliwe, a następnie dwie wartości są porównywane przy użyciu Object.Equals metody . Element MultiTrigger stosuje skojarzone zestawy lub akcje, gdy wszystkie warunki są prawdziwe (operacja binarna AND ).

Dla elementu MultiDataTriggerkażdy warunek w kolekcji musi ustawić zarówno właściwości, jak Binding i Value . Aby uzyskać więcej informacji, zobacz Binding.

Użycie elementu właściwości języka XAML

<object>  
  <object.Conditions>  
    zeroOrMoreConditions  
  </object.Conditions>  
</object>  

Wartości XAML

zeroOrMoreConditions
Zero lub więcej Condition obiektów.

Dotyczy

Zobacz też