技術的なことや技術的じゃないことを書きます2012-11-17Livetを使って変更通知機能付きBackgroundWorkerを作ってみたC#新しく作ってるWPFアプリケーションでLivetを使わせていただいてます。ひぃこら言いながら勉強してます。その中でProgressBarを使うことになったのでせっかくなのでMVVMっぽく(ダメなパターン)実装できるかなと思い、出来上がったのがProgressBarViewModelとNotifiableBackgroundWorkerを使った実装です。関係ない部分はバッサリカットしてるんでご了承ください。}}WindowのVMでProgreessBarViewModelのインスタンスを持っています。寿命はWindowと一緒(のはず)なのでさして問題ではないと思ってこうしてます。次にこのProgressBarViewModelを。#継承させるなら任意の子クラスに。}初期化の部分で肝心要のクラスNotifialBackgroundWorkerのインスタンスを作ってPropertyChangedEventListenerにハンドラを追加しています。NotificationObjectであるNotifialBackgroundWorkerの方でプロパティの変更通知が発火されるとハンドラが呼び出され、値を更新します。Worker経由で非同期処理のStart、Cancelを行います。NotifiableBackgroundWorkerの実装はこのようになってます。Workメソッドに関しては中身なんでもいいです。