Aracılığıyla paylaş


MultiDataTrigger.Conditions Özellik

Tanım

Nesne koleksiyonunu Condition alır. Özellik değerlerinde yapılan değişiklikler, koleksiyondaki tüm koşullar karşılandığında uygulanır.

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

Özellik Değeri

ConditionCollection

Condition nesneleri topluluğu. Varsayılan değer boş bir topluluktur.

Örnekler

Aşağıdaki örnekte, ItemsSource özelliğinin ListBox nesnesi ile PlacesObservableCollection<T> Place ilişkilidir. Placenesneleri ve Stateözelliklerine Name sahiptir. ve Places tanımı Place gösterilmez.

her ListBoxItem biri ListBox bir Place nesne görüntüler. Style örnekteki her öğesine ListBoxItemuygulanır. Condition öğelerinin MultiDataTrigger öğeleri, veri öğesinin Portland ve sırasıyla ve Place State OR olduğundaName, ilgili ListBoxItem arka plan değerinin olarak Cyanayarlandığını belirtir.

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

Açıklamalar

bir MultiDataTrigger nesnesine MultiTriggerbenzer, ancak koşullarının MultiDataTrigger bir yerine UIElementilişkili verilerin özellik değerlerini temel alması gerekir. içinde MultiDataTrigger, veri öğesinin özellik değeri belirtilen Valueile eşleştiğinde bir koşul karşılanır. Bu değer önce mümkünse bağlama değerinin türüne dönüştürülür ve ardından iki değer yöntemi kullanılarak Object.Equals karşılaştırılır. , MultiTrigger tüm koşullar doğru olduğunda ilişkili ayarlayıcıları veya eylemleri uygular (ikili AND işlem).

içinMultiDataTrigger, koleksiyondaki her koşul hem hem Value de Binding özelliklerini ayarlamalıdır. Daha fazla bilgi için bkz. Binding.

XAML Özellik Öğesi Kullanımı

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

XAML Değerleri

zeroOrMoreConditions
Sıfır veya daha fazla Condition nesne.

Şunlara uygulanır

Ayrıca bkz.