2011-09-27 32 views
5

Tôi cần một điều khiển hoạt động như một treeview (liên kết với một cấu trúc cây, mở rộng các nút con dựa trên tài sản IsExpanded của đối tượng bị ràng buộc), nhưng hiển thị dữ liệu như lưới (không thụt lề, hoặc chuyển đổi hình ảnh).Làm thế nào để flatten một TreeView WPF

Sự sụp đổ mở rộng sẽ diễn ra tự động dựa trên đối tượng bị ràng buộc.

TreeView là hoàn hảo, tôi chỉ cần loại bỏ thụt đầu dòng và hình tam giác để làm cho nó thẳng đứng, giống như cột lưới.

Tôi cho rằng tôi có thể thử cách ghi đè các mẫu TreeViewItem, nhưng điều đó chỉ không hiển thị bất cứ điều gì ..

Trả lời

2

Dựa trên TreeView style on MSDN, một cái gì đó như thế này nên làm việc:

<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

cảm ơn, tôi sẽ chơi xung quanh với kiểm soát templating! –

+0

hoạt động như một sự quyến rũ. bạn thưa bạn là một quý ông! –

2

Bạn cần một TreeListView (nó kết hợp các TreeViewListView tại TreeViewItem mẫu mực đẹp)

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

+0

Chúc mừng đây chính xác là những gì tôi đang tìm kiếm! Liên kết bạn có là đúng, nhưng MSDN không liên kết với mã thực tế! Mã có thể được tìm thấy ở đây (http://archive.msdn.microsoft.com/wpfsamples) –

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