読者です 読者をやめる 読者になる 読者になる

tmori3y2のブログ

主にWindowsのプログラムなど

初心者が迷ったReactiveCollectionとDataGridの重複値のチェック~リターンズ2

C# MVVM ReactiveProperty WPF

2016/12/05 注記

この記事のModelのコレクションをReactiveCollectionで実装する方法には、問題があります。

理由は、Schedulerのデフォルトの動作で、ReactivePropertyはViewへの更新のみがRenderingスレッドで実行されるのに対して、ReactiveCollectionのAddOnSchedulerなどの操作を行うとコレクション操作がRenderingスレッドで実行されるので、ReactivePropertyとの処理タイミングのズレが発生し、トラブルになることです。

AddOnSchedulerなどの操作を行わないなら、ObservableCollectionで十分です。

時間があれば書き直しますが、ModelではObservableCollectionを使用してください。

本文

(2016/02/23 コード一部差し替え/詳細は前回の記事参照)

tmori3y2.hatenablog.com

「出来たと思ったのは浅はかだった・・・」

例の如く不具合である。

ラーフラグが付いていない重複行を消すと、エラーフラグが付いている行がエラーのままであった。

f:id:tmori3y2:20160223205619p:plain

「行削除でエラーが消えるパターンを見落としていた」

  • 行削除を監視
  • ラーフラグがついている行の再評価
  • 一応、こちらもブロックしておく

f:id:tmori3y2:20160223210146p:plain

ここまでで、ViewModelは以下のように変わりました。

(2016/02/23 コード一部差し替え/詳細は前回の記事参照)

う~ん、GitHub始めた方がいいのかな?

ソースコード

github.com