2010-01-24 4 views
0

내가 문제 그룹의 주위에 내 머리를 얻고 XAML에서 정렬 및 누군가가 나를 밖으로 곧게 얻을 수 있기를 바랍니다가 오전에 트 리뷰에 대한 정렬!그룹화 및 XAML

나는 몇 수준이 깊은 될 수 있습니다 (단 윈도우 탐색기 같은) 파일 및 폴더의 트리에서 XML 파일을 만들었습니다. TreeView 컨트롤을 xml 데이터 소스에 바인딩 했으므로 훌륭하게 작동합니다! 그것은 지금처럼 나는 그것이 오히려 파일 목록에 폴더보다 먼저 모든 파일을 모든 폴더를 정렬하고 싶습니다 ... 순으로 모든 것을 정렬하지만.

는 XML : 당신이 treeviw이를로드하는 경우가 알파 위해 처음이기 때문에

이 폴더 전에 두 파일을 표시합니다.

여기 내 코드입니다 :

<!-- 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 [email protected]}" /> 
    </HierarchicalDataTemplate> 

    <HierarchicalDataTemplate DataType="folder" ItemsSource ="{Binding}"> 
    <TextBlock Text="{Binding [email protected]}" /> 
    </HierarchicalDataTemplate> 

    <HierarchicalDataTemplate DataType="file" ItemsSource ="{Binding}"> 
    <TextBlock Text="{Binding [email protected]}" /> 
    </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> 
+0

죄송합니다, XML을 포함하는 것을 잊었다 폴더 이름 = "폴 데라"> <파일 이름 = "application.asp"/> <파일 이름 = "work.asp"답장을 보내 /> – danhotb

답변

0

시도는 XML 파일에 다른 속성을 추가, 나는에 FileType를 부를 것이다, 그러나 당신은 무엇이든처럼 호출 할 수 있습니다. 이 요소의 경우 "Folder"또는 "File"과 동일하게 지정하십시오. 이제 정렬 수준까지해야합니다. 첫 번째 정렬 FileType에서 Decending (Folders first, Files second), Name 특성에서 정렬합니다. 즉, XML은 다음과 같이 표현할 수 있습니다.

<project name="ProjectName" > 
    <file name="alphacat.html" FileType="File" /> 
    <file name="aztec.html" FileType="File" /> 
    <folder name="FolderA" FileType="Folder" > 
     <file name="application.asp" FileType="File" /> 
     <file name="work.asp" FileType="File" /> 
    </folder> 
</project> 

도움이 될까요? 는 XML : <프로젝트 이름 = "프로젝트 이름"> <파일 이름 = "alphacat.html"/> <파일 이름 = "aztec.html"/> <

+0

감사합니다. 정렬 기준을 이해해야하지만 xaml에 정렬을 작성하는 방법을 알지 못합니다. 난 당신이 제안처럼 속성을 추가 줘야 해 (나는, 요소 이름을 정렬 기대했지만 정말로 필요가 없습니다). xaml을 코딩하는 방법을 보여줄 수 있습니까? – danhotb

+0

흠 ... 그 이상하다. SortView를 사용하여 CollectionViewSource에 바인딩 된 ListView를 사용할 때 제대로 작동하지만 TreeView가 정렬을 선택하지 않는 것 같습니다. 미안합니다. 폴더는 첫 번째, 두 번째 파일 - 한 가지 해결 방법은 XML 당신이 그것을 표시 할 방법을 주문하는 것입니다. 이상적은 아니지만 작동 할 것입니다. 당신이 다른 사람들로부터 더 많은 답변을 얻을 수 있다고 생각한다면 내 대답을 삭제할 수 있습니다. 알려줘. – Brent