2009-08-18 4 views
0

나는 각 항목에 이름과 "그룹 이름"(두 문자열 모두)이있는 관찰 가능한 항목 모음을 가지고 있습니다.까다로운 WPF 스타일링 문제 - 할 수 있습니까?

까다로운 부분은 XAML에서 그룹 이름이 같은 모든 항목이 서로 나란히 나열되고 그룹 이름이 맨 위에 표시되도록이 컬렉션의 스타일을 지정해야합니다.

표시되는 각 항목의 레이아웃은 물론 그룹 이름의 레이아웃에 대한 사용자 컨트롤을 설계했습니다. ItemsControl을 가지고 놀았지만, 같은 그룹을 가진 아이템이 그 소스로 일반 ItemControl 사용자 컨트롤을 사용하는 동일한 ItemsControl에 어떻게 든 "병합"되도록 그룹 스타일을 지정하는 방법을 모릅니다.

바인딩이 완벽하게 작동하기 때문에 각 그룹 안에 항목 모음이있는 "그룹"모음을 사용하여이 작업을 수행했습니다. 그러나 각 항목이 둘 이상의 그룹에 속할 수 있다는 점을 고려하지 않았습니다 (한 사람을 "직장 동료"그룹뿐만 아니라 "동료"그룹으로 생각하므로 복제해야합니다).

어떤 조언이나 솔루션은 많은 감사합니다 :)

답변

1

첫째, 항목을 정렬 할 CollectionViewSource를 사용

<ItemsControl Source="{Binding Source={StaticResource SortedItems}}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <!-- stick your template for each item here --> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 
: 그런 다음 ItemsControl (또는 무엇이든)에서 결합

<CollectionViewSource x:Key="SortedItems" Source="{Binding YourUnsortedItems}"> 
    <CollectionViewSource.SortDescriptions> 
     <scm:SortDescription PropertyName="GroupName"/> 
    </CollectionViewSource.SortDescriptions> 
</CollectionViewSource> 

+0

좋은 예를 보려면 http://www.beacosta.com/blog/?p=17을 확인하십시오. –