2010-07-01 19 views
15

Tôi có một TreeView với một ToggleButton (ExpanderButton). Nút chuyển đổi có hai hình ảnh (một hình để mở rộng và một khi không có). Tuy nhiên khi tôi chọn một TreeViewItem tôi highligh nó với một màu sắc khác nhau và tôi muốn thay đổi màu sắc của hình ảnh là tốt (tôi có những người cùng màu trong các màu sắc khác).Làm cách nào để đặt Trình kích hoạt trên một đứa con thành thuộc tính cha mẹ?

Vấn đề là tôi không biết cách đặt thuộc tính kích hoạt trên ToggleButton thành thuộc tính IsSelected trên TreeViewItem.

Bất kỳ ý tưởng nào?

+0

Kết nối dữ liệu tốt với RelativeSource là đúng cách tôi đoán. Tìm thấy trong vài giây sau khi tôi đăng mặc dù tôi đã tìm kiếm. Chỉ cần không sử dụng cụm từ tìm kiếm phù hợp. –

Trả lời

30

Ở đây nếu có ai khác cần điều này.

<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

chính xác những gì tôi đang tìm kiếm cảm ơn –

Các vấn đề liên quan