У меня проблема с сортировкой / привязкой WPF. (Отказ от ответственности: я очень плохо знаком с WPF и привязкой данных, поэтому извиняюсь, если задаю действительно тупой вопрос: -))
Во-первых, у меня есть класс сущности linqToSql Contact
с EntitySet<Booking>
свойством Bookings.
Если я напрямую связываю это свойство Bookings с ListView
, приложение, похоже, правильно уведомляет об изменениях выбранного элемента в ListView
, так что текстовое поле с {Binding Path=Bookings/Comments}
корректно обновляется.
// This code works, but Bookings is unsorted
var binding = new Binding();
binding.Source = contact.Bookings;
bookings.SetBinding(ItemsControl.ItemsSourceProperty, binding);
Однако, поскольку я не могу найти способ сортировки EntitySet (см. этот пост ), я вместо этого пытаюсь привязать коллекцию Observable, например:
// This code doesn't notify of selected item changes in the ListView
var binding = new Binding();
binding.Source = new ObservableCollection<Booking>(contact.Bookings.OrderByDescending(b => b.TravelDate).ToList());
bookings.SetBinding(ItemsControl.ItemsSourceProperty, binding);
Но, похоже, это неправильно уведомляет текстовое поле комментариев, чтобы оно обновлялось.
Если у кого-то есть решение для сортировки данных до или после его привязки, или другое решение, которое будет работать, было бы очень полезно.