WPF の並べ替え/バインドの問題があります。(免責事項:私はWPFとデータバインディングに非常に慣れていないので、本当にばかげた質問をしていたら申し訳ありません:-))
まず、プロパティ Bookings をContact
持つlinqToSql エンティティ クラスがあります。EntitySet<Booking>
この 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);
しかし、これはコメントテキストボックスに正しく通知されないようで、更新されます。
バインドの前後でデータをソートするためのソリューション、または機能する別のソリューションを誰かが持っている場合、それは大歓迎です。