2017-11-30 7 views
1

Ich habe für meine Items einen Trigger gesetzt, die perfekt funktionieren:einen Daten-Trigger mit einem Regular-Trigger in einem Artikel Beimischregelung

<DataTemplate.Triggers> 
    <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
     <Setter Property="Background" Value="LightGray" TargetName="Foobar"></Setter> 
    </Trigger> 
</DataTemplate.Triggers> 

Mein Problem ist, dass manchmal, ich habe eine „spezielle Linie“ in einwerfen Die Liste.

Ich verwende die folgenden Trigger, der die Steuerelemente in der Vorlage zu manipulieren funktioniert:

<Style TargetType="TextBlock"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding isHeaderLine}" Value="true"> 
      <Setter Property="Visibility" Value="Visible"/> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

Dies funktioniert gut und ich genau das, was ich angezeigt werden soll.

Nun, meine Frage ist, dass ich sie zusammenführen möge, so dass die Sonderlinie keine einen weißen Hintergrund erhalten wird unabhängig davon, welche Zahl in dem Alter es ist.

Kann dies getan werden? Hier

ist der vollständige Code:

<ItemsControl Margin="0 0 0 30" Name="CtrlOrderDetails" AlternationCount="2"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
     <Grid x:Name="Foobar"> 
      <TextBlock Text="{Binding ProdcutName}" Margin="0 5 0 5" FontSize="16"> 
       <TextBlock.Style> 
        <Style TargetType="TextBlock"> 
         <Style.Triggers> 
         <DataTrigger Binding="{Binding isHeaderLine}" Value="true"> 
          <Setter Property="Visibility" Value="Collapsed"/> 
         </DataTrigger> 
         </Style.Triggers> 
        </Style> 
       </TextBlock.Style> 
      </TextBlock> 
      <TextBlock Text="{Binding headerText}"> 
       <TextBlock.Style> 
       <Style TargetType="TextBlock"> 
        <Setter Property="FontWeight" Value="Bold"></Setter> 
        <Setter Property="FontSize" Value="16"></Setter> 
        <Setter Property="Foreground" Value="Blue"></Setter> 
        <Setter Property="Visibility" Value="Collapsed"/> 
        <Setter Property="Margin" Value="0 10 0 5 "/> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding isHeaderLine}" Value="true"> 
          <Setter Property="Visibility" Value="Visible"/> 
         </DataTrigger> 
        </Style.Triggers> 
       </Style> 
      </TextBlock.Style> 
      </TextBlock> 
     </Grid> 
     <DataTemplate.Triggers> 
      <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
      <Setter Property="Background" Value="LightGray" TargetName="Foobar"></Setter> 
      </Trigger> 
     </DataTemplate.Triggers> 
    </DataTemplate> 
    </ItemsControl.ItemTemplate> 
<ItemsControl> 

Antwort

1

versuchen, den gleichen Datatrigger aus Stil in Datatemplate verwenden, aber mit einem Setter für Hintergrund

<DataTemplate.Triggers> 
    <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
    <Setter Property="Background" Value="LightGray" TargetName="Foobar"/> 
    </Trigger> 

<DataTrigger Binding="{Binding isHeaderLine}" Value="true"> 
    <Setter Property="Background" Value="White" TargetName="Foobar"/> 
</DataTrigger> 
</DataTemplate.Triggers> 
+0

Ich hätte schwören können, dass ich das versucht, aber es hat funktioniert diesmal – Yoni

+1

@Yoni, Triggern Reihenfolge ist wichtig: https://stackoverflow.com/questions/561178/in-wpf-does-the-order-of-triggers-matter – ASh

Verwandte Themen