ItemsControl to CollectionViewSource öğesini bağlıyorum. İşte kod: Çalışmaya başladığımda başlangıçta bağladığımda: kodları:CollectionViewSource, özellik değişikliğini yeniden sıralamaz
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));
ObservableCollection öğeye eklediğimde - uygun noktaya eklenir, bu iyi. Ama sıraladığım özelliği değiştirdiğimde - bu öğe bir listede "kaydırılmıyor".
ReadyAddress.Region.RegionNumber
düzgün şekilde INotifyPropertyChanged'ı yükseltir ve ilişkili alanlarda görüyorum ancak sipariş değişmiyor. Olmaması gereken bir şey mi beklemeliyim yoksa bunun üstesinden gelmenin daha iyi bir yolu var mı?
Lütfen [SortDescription ve otomatik sıralanmış sipariş yenileme] için yanıtıma bakın (http://stackoverflow.com/a/7372522/620360). – LPL
WPF 4.5'te, bu sorunu çözen canlı şekillendirme olarak adlandırılan yeni bir özellik var ancak Yenile'yi aramak istemiyorsanız, LPL'ye bağlı yöntemi kullanmak zorunda kalabilirsiniz. – Kris
Bu özelliği, yalnızca görüntüyü açığa çıkaran, görünümün yenilenmesini (ve sıralamayı temizleyen) ve ardından sıralama açıklamalarını ekleyen PropertyChanged'i çağırarak çözebildim. – PatFromCanada