2018年8月10日金曜日

WPF の Binding の悩みごと水先案内コーナー

INotifyPropertyChanged との闘い

WPF といえば魅力的な 双方向バインディング が特徴ですよね!

しかしこいつを追い求めんが為に:
INotifyPropertyChanged をごりごり実装するかとか、
DataSet 時代に立ち戻る道をいくとか、
DependencyProperty に染まってしまうとか、
時代は ReactiveProperty だとかで色々な技術的選択肢が出てきます。

Entity Framework 6 で組むならば、こちらの方法がベターかなと思います:
  • DbContext を中心とした純粋な POCO クラス設計。
  • CollectionViewSource で WPF コントロール用のビューを作ります。
  • CollectionViewSource.Source は MyDbContext.DbSet<T>.Local など。
  • Window.DataContext = CollectionViewSource.View で。
  • INotifyPropertyChanged なんて当然実装しないので、
    CollectionViewSource.View.Refresh() で Source → Target 方向へ強制的に通知を発行!

0 件のコメント:

コメントを投稿