2010-12-11 1 views
0

부모 treeviewitem의 높이에 따라 treeviewitems의 여백을 조정해야합니다. hierarchicaldatatemplate의 stackpanel에 변환기를 추가하려고 시도했지만 변환기 convertTo 메소드에서 treeviewitem에 액세스 할 수있는 방법이 없습니다.HierarchicalDataTemplate 참조 변환기의 TreeViewItem

<UserControl.Resources> 

    <converter:LocationConverter x:Name="LocationConverter1" x:Key="LocationConverter1" /> 

    <sdk:HierarchicalDataTemplate x:Key="DataTemplate1" ItemsSource="{Binding SubCategory}"> 

      <StackPanel Margin="{Binding Converter={StaticResource LocationConverter1}}"> 

       <TextBlock Text="{Binding Name}" /> 

      </StackPanel> 

     </sdk:HierarchicalDataTemplate> 

    </UserControl.Resources> 

<Grid x:Name="LayoutRoot"> 
    <custom:TreeViewExtended x:Name="TopicsTreeView" 
          HorizontalAlignment="Left" 
          VerticalAlignment="Top" 
          ItemTemplate="{StaticResource DataTemplate1}"/> 

    <Button Content="Add" Click="Button_Click" Margin="200"></Button> 



</Grid> 

그래서 컨버터 메소드 내에서 이름으로 treeviewitems을 찾을 수를 ConvertTo 방법에 converterParameter로 트 리뷰 인스턴스를 전달하는 방법이 있습니까?

감사

답변

0
나는 ConverterParameter로 트 리뷰 인스턴스를 넣어 좋은 방법을 알고하지 않습니다

(Googling ConverterParameter 금리 someinterestingideas 방법 achieve this ...),하지만 난 당신의 접근 방식이 잘못 생각 - 대신 전체 트리보기를 변환기로 전달한 다음 이름별로 TreeViewItem을 찾으십시오. 비주얼 트리를 검색하고 필요한 높이를 찾을 변환기를 사용하여 마진 바인딩에 TreeViewItem을 전달하는 것이 어떻습니까?

는 다음과 같이 수행 할 수 있습니다

<StackPanel Margin="{Binding RelativeSource={RelativeSource FindAncestor, 
                  AncestorType=TreeViewItem}, 
          Converter={StaticResource LocationConverter1}}"> 

지금, 당신의 컨버터의 값 매개 변수는 현재 TreeViewItem 될 것입니다. 이 값을 사용하면 VisualTreeHelper을 사용하여 TreeView 인스턴스를 가져올 수 있습니다.