Condividi tramite


MultiDataTrigger.Conditions Proprietà

Definizione

Ottiene una raccolta di Condition oggetti . Le modifiche apportate ai valori delle proprietà vengono applicate quando vengono soddisfatte tutte le condizioni dell'insieme.

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

Valore della proprietà

Raccolta di Condition oggetti. Il valore predefinito è una raccolta vuota.

Esempio

Nell'esempio seguente la ItemsSource proprietà di ListBox è associata a Places, un ObservableCollection<T> di Place oggetti . Place gli oggetti hanno proprietà Name e State. La definizione di Place e Places non viene visualizzata.

Ognuno ListBoxItem di ListBox essi visualizza un Place oggetto . Nell'esempio Style viene applicato a ogni ListBoxItemoggetto . Gli Condition elementi dell'oggetto MultiDataTrigger specificano che se e StateName dell'elemento Place di dati sono Portland eOR, rispettivamente, lo sfondo del corrispondente ListBoxItem viene impostato su Cyan.

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

Commenti

Un MultiDataTrigger oggetto è simile a un MultiTriggeroggetto , ad eccezione del fatto che le condizioni di un MultiDataTrigger oggetto sono basate sui valori delle proprietà dei dati associati anziché su quelli di un oggetto UIElement. In una MultiDataTriggercondizione viene soddisfatta quando il valore della proprietà dell'elemento di dati corrisponde all'oggetto specificato Value. Tale valore viene prima convertito nel tipo del valore dell'associazione, se possibile, e quindi i due valori vengono confrontati usando il Object.Equals metodo . MultiTrigger Applica i setter o le azioni associati quando tutte le condizioni sono vere (operazione binariaAND).

Per , MultiDataTriggerogni condizione nella raccolta deve impostare sia le Binding proprietà che Value . Per altre informazioni, vedere Binding.

Utilizzo dell'elemento della proprietà XAML

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

Valori XAML

zeroOrMoreConditions Zero o più Condition oggetti.

Si applica a

Vedi anche