Tôi đang ràng buộc ItemsControl to CollectionViewSource. Đây là mã số:CollectionViewSource không sắp xếp lại về thay đổi thuộc tính
this.Trucks = new ObservableCollection<Truck>();
foreach (var truck in DataRepository.Trucks.Where(t => t.ReadyDate.Date.Equals(this.Date)))
{
this.Trucks.Add(truck);
}
this.TrucksSource = new CollectionViewSource { Source = this.Trucks };
this.TrucksSource.SortDescriptions.Add(new SortDescription("ReadyAddress.Region.RegionNumber", ListSortDirection.Ascending));
this.TrucksSource.SortDescriptions.Add(new SortDescription("TruckId", ListSortDirection.Ascending));
Khi tôi bắt đầu sắp xếp - sắp xếp công trình. Khi tôi thêm mục vào ObservableCollection - nó được chèn vào vị trí thích hợp, đó là tốt. Nhưng khi tôi thay đổi tài sản mà tôi sắp xếp theo - mục này không bị "chuyển dịch" trong danh sách.
ReadyAddress.Region.RegionNumber
tăng INOTifyPropertyChanged đúng cách và tôi thấy nó trong các trường bị ràng buộc, nhưng thứ tự không thay đổi. Tôi có mong đợi điều gì đó không nên xảy ra hoặc có cách nào tốt hơn để xử lý việc này?
Vui lòng xem câu trả lời của tôi cho [SortDescription và làm mới thứ tự sắp xếp tự động] (http://stackoverflow.com/a/7372522/620360). – LPL
Có tính năng mới trong WPF 4.5 được gọi là định hình trực tiếp để giải quyết vấn đề này nhưng bạn có thể phải sử dụng phương pháp được liên kết với LPL trong thời gian này nếu bạn không muốn gọi lại Làm mới. – Kris
Tôi đã có thể sửa lỗi này bằng cách đơn giản gọi PropertyChanged trên thuộc tính hiển thị chế độ xem, cho phép làm mới chế độ xem (và xóa loại) và sau đó thêm mô tả sắp xếp. – PatFromCanada