2010-05-16 40 views
8

Tôi đang sử dụng TreeView WPF để hiển thị một số thông tin phân cấp. Mỗi mục trong TreeView bao gồm một số thuộc tính, vì vậy tôi đang sử dụng một lưới trong HierarchicalDataTemplate tôi để hiển thị các thuộc tính:Tiêu đề cột cho một TreeView WPF

<HierarchicalDataTemplate x:Key="ArtistTemplate" 
    ItemsSource="{Binding XPath=Title}" 
    ItemTemplate="{StaticResource TitleTemplate}"> 

    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition SharedSizeGroup="NameColumn" /> 
      <ColumnDefinition SharedSizeGroup="GenreColumn" /> 
      <ColumnDefinition SharedSizeGroup="BornColumn" /> 
      <ColumnDefinition SharedSizeGroup="DiedColumn" /> 
     </Grid.ColumnDefinitions> 

     <TextBlock Grid.Column="0" Text="{Binding [email protected]}" /> 
     <TextBlock Grid.Column="1" Text="{Binding [email protected]}" /> 
     <TextBlock Grid.Column="2" Text="{Binding [email protected]}" /> 
     <TextBlock Grid.Column="3" Text="{Binding [email protected]}" /> 
    </Grid> 

</HierarchicalDataTemplate> 

này hiển thị như một TreeView đẹp với 4 cột - cho đến nay rất tốt! Điều bổ sung duy nhất tôi cần là một tiêu đề phía trên TreeView hiển thị tên cột. Chiều rộng cột tiêu đề phải được đồng bộ hóa với TreeViewItems và cũng có thể tùy chỉnh kiểu đầu trang. Cách dễ nhất để làm điều này là gì?

P.S. Tôi tìm thấy hai giải pháp đã đóng:

1) TreeListView here, nhưng điều này yêu cầu tôi triển khai giao diện tùy chỉnh (ITreeModel) cho mô hình của tôi. Ngoài ra cách tiếp cận trong giải pháp này là bắt đầu với một ListView và để thực hiện một RowExpander bằng tay. Trong trường hợp của tôi, TreeView là đủ gần với những gì tôi cần, vì vậy tôi hy vọng rằng đặt một tiêu đề trên nó phải rất đơn giản.

2) TreeListView here. Điều này thực sự bắt đầu với một TreeView, nhưng tôi không thể tìm ra cách tùy chỉnh tiêu đề. Tôi nghi ngờ rằng tôi phải tùy chỉnh GridViewHeaderRowPresenter trong generic.xaml, nhưng phần tử này dường như không có ControlTemplate riêng của nó.

Trả lời

4

Vâng, tôi đã tìm thấy giải pháp here phù hợp với yêu cầu của tôi một cách hoàn hảo!

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