2011-01-20 17 views

Trả lời

21
<CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource animals}, Path=AnimalList}"> 
    <CollectionViewSource.GroupDescriptions> 
     <PropertyGroupDescription PropertyName="Category"/> 
    </CollectionViewSource.GroupDescriptions> 
    <CollectionViewSource.SortDescriptions> 
     <scm:SortDescription PropertyName="Category" /> 
     <scm:SortDescription PropertyName="Name" /> 
    </CollectionViewSource.SortDescriptions> 
</CollectionViewSource> 

Chỉ cần thêm hai SortDescriptions. Hai mô tả sắp xếp cho phép chúng tôi sắp xếp nhóm trước và sau đó là các mục trong nhóm.

Để biết thêm check here

http://bea.stollnitz.com/blog/?p=17

+0

Mặc dù thực tế rằng không có bea.stollnitz.com miền (nữa): Trong khi 'GroupDescriptions' thể chứa bất kỳ lớp học bắt nguồn từ 'GroupDescription' - phải chỉ có phương thức ghi đè 'GroupNameFromItem' dịch bất kỳ đối tượng đầu vào nào thành bất kỳ đối tượng đầu ra nào,' SortDescriptions' chỉ hỗ trợ STRUCT (!!!!!) 'SortDescription' chỉ nhắm mục tiêu tên thuộc tính. Không có cách nào để tương quan rằng 2 thế giới, một cấu trúc và một lớp trừu tượng. – springy76

+0

điều này không hiệu quả đối với tôi ... Tôi đang sử dụng 'ICollectionView' trong mã phía sau (không phải xaml) – JobaDiniz

4

Sắp xếp nhóm có thể mặc dù không đơn giản như vậy. Tôi sẽ giải thích nó trên ví dụ.

class CollectionElement 
{ 
    public string Name {get; set; } 
    public string Group {get; set; } 
} 

Nếu bạn muốn yếu tố nhóm và sắp xếp các nhóm theo thứ tự abc sau đó sắp xếp các yếu tố trong mỗi nhóm theo thứ tự abc thì bạn nên làm như sau:

  1. Thêm PropertyGroupDescription tham khảo Group tài sản
  2. Thêm SortDescription tham khảo Group
  3. Thêm SortDescription tham chiếu Name

Quy trình nhóm có vẻ hoạt động hiệu quả như sau: Iterate qua đã được sắp xếp các yếu tố do đó. Khi gặp phải yếu tố tạo thành nhóm không xác định - hãy tạo một nhóm và thêm nhóm đó vào danh sách nhóm. Khi gặp phải phần tử từ nhóm hiện có - hãy thêm nó vào nhóm hiện có. (Việc triển khai thực tế có thể khác nhau). Vì vậy, nếu các yếu tố của bạn được sắp xếp theo thứ tự bạn muốn nhóm của bạn xuất hiện, bạn sẽ sắp xếp các nhóm một cách hiệu quả.

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