我有一个 WPF 排序/绑定问题。(免责声明:我对 WPF 和数据绑定非常陌生,所以如果我问一个非常愚蠢的问题,我深表歉意 :-))
首先,我有一个Contact
带有EntitySet<Booking>
属性 Bookings 的 linqToSql 实体类。
如果我直接将此 Bookings 属性绑定到 a 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);
但这似乎并没有正确通知评论文本框以使其更新。
如果有人有一个解决方案,可以在数据绑定之前或之后对数据进行排序,或者另一种可行的解决方案,将不胜感激。