2017-11-30 23 views
1

내가 완벽하게 작동 내 ItemsControl에 대한 하나의 트리거를 설정 한 제어 :

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

내 문제는 때때로, 나는에 "특별한 라인을"끼어해야한다는 것입니다 그 목록.

나는 템플릿의 컨트롤을 조작하기 위해 노력하고 다음 트리거 사용 :

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

이 하나가 잘 작동을하고 난 표시 할 정확하게 얻을.

자, 내 질문은 어떤 특별한 번호가 AlternationIndex의 숫자와 상관없이 흰색 배경이 표시되도록 합치려는 것입니다.

이 작업을 수행 할 수 있습니까? 여기

는 전체 코드입니다 :

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

답변

1

이 DataTemplate을 스타일에서 같은 DataTrigger를 사용하려고 노력하지만, 배경에 대한 세터와

<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

나는 그것을 시도했지만이 일 것을 맹세 할 수 있었다 이번에는 – Yoni

+1

@ Yoni, 트리거 순서가 중요합니다. https://stackoverflow.com/questions/561178/in-wpf-does-the-order-of-triggers-matter – ASh