2011-02-24 7 views
10

뷰 모델을 기반으로 동적으로 행의 크기를 조정해야하는 표가 있습니다. 다음과 같은 것을하고 싶습니다.Grid RowDefinitions에서 트리거를 사용할 수 있습니까?

<RowDefinition Height="2*"> 
    <RowDefinition.Style> 
     <Style> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="True"> 
        <Setter Property="RowDefinition.Height" Value="2*"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="False"> 
        <Setter Property="RowDefinition.Height" Value="0"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </RowDefinition.Style> 
</RowDefinition> 

이 컴파일은 오류는 발생시키지 않지만 효과가없는 것 같습니다. 제가 빠진 것이 있습니까, 아니면 폼이 그려지거나 그 효과가있을 때 Grid가 행의 크기를 조절하지 못하게합니까?

답변

15

Xaml 코드의 유일한 문제는 높이를 expl31ly RowDefinition에 설정하여 DataTrigger를 덮어 쓰는 것입니다. 대신 세터를 사용하여 시도하십시오.

<RowDefinition> 
    <RowDefinition.Style> 
     <Style> 
      <Setter Property="RowDefinition.Height" Value="2*"/> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="True"> 
        <Setter Property="RowDefinition.Height" Value="2*"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="False"> 
        <Setter Property="RowDefinition.Height" Value="0"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </RowDefinition.Style> 
</RowDefinition> 
+0

예. Height의 명시적인 설정을 제거하자마자 문제가 사라졌습니다. 잘 잡으세요! – GWLlosa

+0

RowDefinition.Height를 나타내는 이유는 무엇이며 왜 높이만 속성으로 사용할 수 없습니까? 나는 그것을 이해하지 못한다 – MrScf

4

이 게시물은 3 년 전이지만 여전히 도움이 될 수 있습니다.

<RowDefinition> 
    <RowDefinition.Style> 
     <Style TargetType="RowDefinition"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="True"> 
        <Setter Property="Height" Value="2*"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="False"> 
        <Setter Property="Height" Value="0"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </RowDefinition.Style> 
</RowDefinition> 

동일한 상황에서 TargetType을 RowDefinition으로 설정하여 작업 할 수있었습니다.

+0

RowDefinition.Height를 높이 – Dummy

+1

@Dummy로 줄일 수있다 - 수정 해 주셔서 감사합니다. 업데이트 된 XAML보기 :) –

관련 문제