У меня проблемы с группировкой и сортировкой в xaml, и я надеюсь, что кто-нибудь может выправить меня!
Я создал xml-файл из дерева файлов и папок (подобно проводнику Windows), который может иметь несколько уровней. Я связал элемент управления TreeView с источником данных xml, и он прекрасно работает! Он сортирует все по алфавиту, но ... Я бы хотел, чтобы сначала отсортировались все папки, а затем все файлы, а не папки, перечисленные с файлами, как сейчас.
xml:
если вы загрузите его в дерево, то оно отобразит два файла перед папкой, потому что они сначала в альфа-порядке.
вот мой код:
<!-- This will contain the XML-data. -->
<XmlDataProvider x:Key="xmlDP" XPath="*">
<x:XData>
<Select_Project />
</x:XData>
</XmlDataProvider>
<!-- This HierarchicalDataTemplate will visualize all XML-nodes -->
<HierarchicalDataTemplate DataType="project" ItemsSource ="{Binding}">
<TextBlock Text="{Binding XPath=@name}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="folder" ItemsSource ="{Binding}">
<TextBlock Text="{Binding XPath=@name}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="file" ItemsSource ="{Binding}">
<TextBlock Text="{Binding XPath=@name}" />
</HierarchicalDataTemplate>
<CollectionViewSource x:Key="projectView" Source="{StaticResource xmlDP}">
<CollectionViewSource.SortDescriptions>
<!-- ADD SORT DESCRIPTION HERE -->
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
<TreeView Margin="11,79.992,18,19.089"
Name="tvProject"
BorderThickness="1" FontSize="12" FontFamily="Verdana">
<TreeViewItem ItemsSource="{Binding Source={StaticResource xmlDP}, XPath=*}"
Header="Project"/>
</TreeView>