2012-08-05 2 views
1

트리보기에서 노드 기호 + -를 제거하고 Expander로 바꾸려고합니다. - 아이콘과 확장기 작동시킬 수Treeview + - Expander로 바꾸기

 <TreeView.Resources> 
      <HierarchicalDataTemplate ItemsSource="{Binding Disks}" DataType="{x:Type local1:GenSet}"> 
       <Expander Header="{Binding Genre}" x:Name="exp" IsExpanded="False" > 
       </Expander> 
       <HierarchicalDataTemplate.Triggers> 
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=IsExpanded}" Value="True"> 
         <Setter TargetName="exp" Property="IsExpanded" Value="True"/> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=IsExpanded}" Value="False"> 
         <Setter TargetName="exp" Property="IsExpanded" Value="False"/> 
        </DataTrigger> 
       </HierarchicalDataTemplate.Triggers> 

       <!--<TextBlock Text="{Binding Genre}"/>--> 
      </HierarchicalDataTemplate> 
      <DataTemplate DataType="{x:Type local1:DiskPrime}"> 
       <TextBlock Text="{Binding Namee}"/> 
      </DataTemplate> 
     </TreeView.Resources> 
    </TreeView> 

내가 +를 제거해야합니다 다음은 내 XAML입니다. 이 문제를 해결하는 방법에 대해 조언을 부탁해주십시오. 고맙습니다.

답변

3

ItemContainerStyle에는 TreeViewItems에 대해 새 Template을 설정합니다.

+0

저는 초보자입니다. 조금 더 자세히 설명해 주시거나 샘플을 이해하거나 간단한 방법으로 이해해 주시겠습니까? 고맙습니다. – surpavan

+0

몇 가지 개선 사항을 만들었습니다. 다음에 무엇을 할 지 말해 줄 수 있습니까? – surpavan

+0

@surpavan : 템플릿이 여전히 엉망이고, DataTemplate에 확장자가 없어야하며, ControlTemplate에서 헤더 내용 표시자를 가진 테두리는 Expander.Header 안에 있어야하며,'ItemsPresenter'를 Expander.Content로 추가해야합니다 '라고 표시합니다. –

4

귀하의 필요를 충족시키기 위해 이것을 수정하십시오.

 <TreeView> 
     <TreeView.Resources> 
      <Style TargetType="TreeViewItem"> 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate> 
          <Expander Header="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=Header}"> 
           <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=Items[0]}"/> 
          </Expander> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 
     </TreeView.Resources> 
     <TreeViewItem Header="Test 1"> 
      <TreeViewItem Header="Child 1"><TextBox Text="Hello"></TextBox></TreeViewItem> 
     </TreeViewItem> 
     <TreeViewItem Header="Test 2"/> 
     <TreeViewItem Header="Test 3"/> 
    </TreeView> 
+0

감사합니다. 그러나 선택 변경이 작동하지 않습니다, 나는 마우스 동작이 작동하지 않는 것 같아요. – surpavan

+0

허용되는 답변보다 훨씬 낫습니다! 감사 ! – Hristo