我将 ItemsControl 绑定到 CollectionViewSource。这是代码:
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 时 - 它被插入到正确的位置,这很好。但是当我更改我排序的属性时 - 这个项目没有在列表中“移动”。
ReadyAddress.Region.RegionNumber
正确引发 INotifyPropertyChanged 并且我在绑定字段中看到它,但顺序没有改变。我是否期望一些不应该发生的事情或者有更好的方法来处理这个?