Condividi tramite


MultiDataTrigger.Conditions Proprietà

Definizione

Ottiene una raccolta di oggetti Condition. Modifiche ai valori della proprietà sono applicate quando tutte le condizioni nell'insieme sono soddisfatte.

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à

ConditionCollection

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

Esempio

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

Ogni ListBoxItem oggetto ListBox visualizza un Place oggetto . Nell'esempio Style viene applicato a ogni ListBoxItemoggetto . Gli Condition elementi di MultiDataTrigger specificano che se e Name State dell'elemento Place di dati sono Portland e OR 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 MultiTrigger, ad eccezione del fatto che le condizioni di un MultiDataTrigger oggetto si basano 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 un oggetto MultiDataTrigger, ogni condizione dell'insieme deve impostare le Binding proprietà e Value . Per altre informazioni, vedere Binding.

Utilizzo della sintassi XAML per elementi proprietà

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

Valori XAML

zeroOrMoreConditions
Zero o più Condition oggetti.

Si applica a

Vedi anche