2011-09-27 68 views
5

ツリービュー(ツリー構造にバインドし、バインドされたオブジェクトのIsExpandedプロパティに基づいて子ノードを展開)のように動作するコントロールが必要ですが、グリッドのようなデータを表示します(インデントしない、 )。WPF TreeViewをフラット化する方法

展開の折りたたみは、バインドされたオブジェクトに基づいて自動的に行われます。

TreeViewは完璧です。グリッドの列のように、垂直にフラットにするには、インデントと三角形のイメージを削除するだけです。

私はツリービューアイテムのテンプレートをオーバーライド試みることができると仮定し、それはちょうど..

答えて

2

TreeView style on MSDNに基づいて、何も表示されない、このような何かが動作するはずです:

<Style TargetType="TreeViewItem"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="TreeViewItem"> 
       <StackPanel> 
        <VisualStateManager.VisualStateGroups> 
         <VisualStateGroup x:Name="ExpansionStates"> 
          <VisualState x:Name="Expanded"> 
           <Storyboard> 
            <ObjectAnimationUsingKeyFrames 
             Storyboard.TargetProperty="(UIElement.Visibility)" 
             Storyboard.TargetName="ItemsHost"> 
             <DiscreteObjectKeyFrame KeyTime="0" 
              Value="{x:Static Visibility.Visible}" /> 
            </ObjectAnimationUsingKeyFrames> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="Collapsed" /> 
         </VisualStateGroup> 
        </VisualStateManager.VisualStateGroups> 
        <ContentPresenter ContentSource="Header" /> 
        <ItemsPresenter Name="ItemsHost" Visibility="Collapsed" /> 
       </StackPanel> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

ありがとう、私は制御テンプレートで遊んでみましょう! –

+0

は魅力的に働いた。あなたは紳士です! –

2

あなたはTreeListViewを必要とします

http://msdn.microsoft.com/en-us/library/ms771523.aspx

(それは美しくツリービューアイテムテンプレートレベルで TreeViewListViewを組み合わせます)
+0

これはまさに私が探していたものです!あなたが持っているリンクは正しいですが、MSDNは実際のコードにリンクしていません!コードはこちら(http://archive.msdn.microsoft.com/wpfsamples) –

関連する問題