2010-07-01 122 views
15

我有一個TreeView與ToggleButton(ExpanderButton)。 togglebutton具有兩個圖像(一個用於展開,另一個則不展開)。但是,當我選擇一個TreeViewItem我用不同的顏色高亮顯示,我想改變圖像的顏色(我有相同的顏色)。如何將子項上的觸發器設置爲父屬性?

問題是我不知道如何將ToggleButton上的觸發器屬性設置爲TreeViewItem上的IsSelected屬性。

任何想法?

+0

Well DataBinding with RelativeSource是我猜的正確方法。雖然我一直在尋找,但在發佈後幾秒鐘就發現了。只是沒有使用正確的搜索短語。 – 2010-07-01 14:59:47

回答

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

正是我在尋找感謝 – 2011-07-29 21:57:07

相關問題