Tôi có một đơn giản ListView
và muốn sắp xếp các nội dung theo số hoặc theo thứ tự bảng chữ cái, tăng dần hoặc giảm dần. Sự lựa chọn đến từ một hộp thả xuống. Tôi hiểu rằng tôi có thể sử dụng CollectionViewSource
để đạt được phân loại nhưng làm cách nào tôi có thể thay đổi SortDescription hoặc chỉ đường khi đang di chuyển?Thay đổi kiểu xem danh sách Thuộc tính/Chỉ trong XAML chỉ
Cập nhật:
Ok vì vậy tôi đã thiết lập CVS của tôi như vậy, ViewModel là những gì các ListView hiện đang bị ràng buộc để. Tôi yêu cầu PropertyName bị ràng buộc với thuộc tính của mục combo box hiện đang được chọn PropertyName
. Hộp kết hợp được liên kết với danh sách tùy chỉnh hiển thị tên thuộc tính mà tôi muốn sắp xếp.
Nó phàn nàn về PropertyName mà im cố gắng sử dụng:
A 'Binding' không thể được đặt trên bất động sản 'PropertyName' kiểu 'SortDescription'. Chỉ có thể đặt 'Binding' trên DependencyProperty của DependencyObject.
<CollectionViewSource Source="{StaticResource viewModel.ListValues}" x:Key="cvs">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="{Binding Path=SortPropertyName, Source=comboSort}"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
<ListView ItemsSource="{Binding Source={StaticResource cvs}}" />
bạn có thể loại bỏ các mô tả loại cũ sau đó thêm các mô tả loại mới (với Comparer khác nhau) và cuối cùng là gọi refresh trên CollectionViewSource – punker76
Tôi muốn để làm điều này trong XAML chỉ, tức là không có mã phía sau (mã trong ViewModel là chấp nhận được) – Chris
có rồi làm điều đó, hộp thả xuống của bạn liên kết với một thuộc tính tại viewmodel của bạn và sau khi thay đổi tha lựa chọn bạn có thể thay đổi CollectionViewSource của bạn (listvie của bạn w liên kết với CollectionViewSource) – punker76