2010-05-16 23 views
8

के लिए कॉलम हैडर मैं कुछ पदानुक्रमित जानकारी प्रदर्शित करने के लिए WPF TreeView का उपयोग कर रहा हूं। TreeView में प्रत्येक आइटम कई गुण होते हैं, इसलिए मैं इन विशेषताओं को प्रदर्शित करने के लिए मेरे HierarchicalDataTemplate के भीतर एक ग्रिड का उपयोग कर रहा:एक WPF TreeView

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

एक अच्छा TreeView के रूप में यह प्रदर्शित करता है 4 कॉलम के साथ - अब तक तो अच्छा! मुझे केवल एकमात्र अतिरिक्त चीज़ है जो TreeView के ऊपर एक शीर्षलेख है जो कॉलम नाम प्रदर्शित करता है। हेडर कॉलम चौड़ाई TreeViewItems के साथ सिंक्रनाइज़ किया जाना चाहिए और हेडर शैलियों को अनुकूलन योग्य होना चाहिए। ऐसा करने का सबसे आसान तरीका क्या है?

पीएस मुझे दो समाधान मिले जो करीब आये:

1) एक वृक्षसूची here, लेकिन इसके लिए मुझे अपने मॉडल में कस्टम इंटरफ़ेस (ITreeModel) लागू करने की आवश्यकता है। इसके अलावा इस समाधान में दृष्टिकोण एक सूची दृश्य से शुरू करना और मैन्युअल रूप से RowExpander को लागू करना है। मेरे मामले में, ट्री व्यू मुझे जो चाहिए, उसके करीब पर्याप्त है, इसलिए मुझे आशा है कि उस पर एक शीर्षलेख डालना बहुत आसान होना चाहिए।

2) एक वृक्षसूची here। यह वास्तव में TreeView से शुरू होता है, लेकिन मैं यह नहीं समझ सकता कि हेडर को कस्टमाइज़ कैसे करें। मुझे संदेह है कि मुझे generic.xaml में GridViewHeaderRowPresenter को कस्टमाइज़ करना है, लेकिन इस तत्व का अपना नियंत्रण टेम्पलेट नहीं लगता है।

उत्तर

4

ठीक है, मुझे एक समाधान मिला here जो मेरी आवश्यकताओं को पूरी तरह से फिट करता है!

संबंधित मुद्दे