2010-07-01 3 views
15

ToggleButton (ExpanderButton)이있는 TreeView가 있습니다. 토글 버튼에는 두 개의 이미지가 있습니다 (하나는 확장 용이고 다른 하나는 불가능). 그러나 TreeViewItem을 선택할 때 다른 색상으로 강조 표시하고 이미지 색상도 변경하고 싶습니다. 다른 색상과 동일한 색상을 사용하고 싶습니다.하위에 트리거를 부모 속성으로 설정하는 방법?

문제 TreeViewItem의 IsSelected 속성에 ToggleButton의 트리거 속성을 설정하는 방법을 모르겠습니다.

어떤 아이디어?

+0

Well, RelativeSource를 사용한 데이터 바인딩은 올바른 방법입니다. 내가 검색하고 있었지만 게시 한 후 몇 초 만에 발견되었습니다. 올바른 검색 구문을 사용하지 않았습니다. –

답변

30

여기 다른 사람이 필요하면.

<ControlTemplate TargetType="ToggleButton"> 
       <Image Name="ExpanderImage" Height="24" Width="24" Source="..\Images\Icons\32x32\Blue\Open.png" /> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsChecked" Value="True"> 
         <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Blue\Close.png" /> 
        </Trigger> 
        <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}" Value="True"> 
         <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Green\Open.png" /> 
        </DataTrigger> 
        <MultiDataTrigger> 
         <MultiDataTrigger.Conditions> 
          <Condition Binding="{Binding Path=IsChecked, RelativeSource={RelativeSource Self}}" Value="True" /> 
          <Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}" Value="True" /> 
         </MultiDataTrigger.Conditions> 
         <Setter TargetName="ExpanderImage" Property="Source" Value="..\Images\Icons\32x32\Green\Close.png" /> 
        </MultiDataTrigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
+1

정확히 내가 뭘 찾고 있었는지 고마워. –

관련 문제