MultiDataTrigger.Conditions Propriedade

Definição

Recebe uma coleção de Condition objetos. Alterações aos valores das propriedades são aplicadas quando todas as condições da coleção são cumpridas.

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

Valor de Propriedade

Uma coleção de Condition objetos. O padrão é uma coleção vazia.

Exemplos

No exemplo seguinte, a ItemsSource propriedade do ListBox está ligada a Places, um ObservableCollection<T> de Place objetos. Place os objetos têm propriedades Name e State. A definição de Place e Places não é mostrada.

Cada ListBoxItemListBox um exibe um Place objeto. O Style no exemplo é aplicado a cada ListBoxItem. Os Condition elementos de especificam MultiDataTrigger que se os Name e State do Place elemento de dados forem Portland e OR respetivamente, então o fundo de correspondente ListBoxItem é definido como 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>

Observações

Um MultiDataTrigger objeto é semelhante a um MultiTrigger, exceto que as condições de um MultiDataTrigger baseiam-se em valores de propriedades de dados ligados em vez dos valores de um UIElement. Num MultiDataTrigger, uma condição é satisfeita quando o valor da propriedade do elemento de dados corresponde ao especificado Value. Esse valor é primeiro convertido para o tipo do valor da ligação, se possível, e depois os dois valores são comparados usando o Object.Equals método. Aplica MultiTrigger os setters ou ações associadas quando todas as condições são verdadeiras (operação binária AND ).

Para um MultiDataTrigger, cada condição na coleção deve definir ambas as Binding propriedades e Value . Para obter mais informações, veja Binding.

Uso do elemento de propriedade XAML

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

Valores XAML

zeroOrMaisCondições Zero ou mais Condition objetos.

Aplica-se a

Ver também