2012-08-05 103 views
1

我試圖從樹視圖中刪除節點標誌+ - 並用Expander替換它們。以下是我的XAML:用擴展器替換Treeview + -

 <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> 

我需要刪除+ - 的圖標,並獲得擴展工作。你能否請建議如何做到這一點。謝謝。

回答

3

ItemContainerStyle中爲TreeViewItems設置了新的Template

+0

我是一個新手,你可能會更詳細一點或指向一個樣本或簡單的方法來理解它。謝謝。 – surpavan 2012-08-05 10:20:49

+0

做了一些改進,請問下一步該怎麼做。 – surpavan 2012-08-05 10:49:45

+0

@surpavan:你的模板仍然搞砸了,DataTemplate不應該包含任何擴展器,並且在ControlTemplate中,帶有Header內容展示器的邊框應該在'Expander.Header'裏面,並且還要添加一個'ItemsPresenter'作爲'Expander.Content '爲孩子項目。 – 2012-08-05 10:57:26

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 2012-08-06 06:42:07

+0

比接受的答案好得多!謝謝 ! – Hristo 2015-12-18 13:35:18