redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

MVVM

Dispatcher.InvokeとDispatcher.BeginInvoke、Dispatcher.InvokeAsyncの違い

WPFアプリケーションで、別スレッドから画面を更新したい場合は、DispatcherクラスのInvokeメソッドに、引数としてメソッドを渡して、UIスレッドで実行されるようにします。 ググってみると、DispatcherクラスにはInvokeメソッドの他に、BeginInvokeメソッド…

ProgressBarの表示をMVVMアーキテクチャで実装する

ProgressBarの表示って、非同期処理が入るので、意外と難しいですよね。 表示の仕方は、以下のサイトで分かりやすく説明されているのですが、素のWPFなのです。 anderson02.com どうせならば、MVVMアーキテクチャで実装したいなと思いやってみました。 まず…

Prismを使用してサブウィンドウでRegionを使用した場合に発生したエラーと対処方法・その2

一つ前の記事で、サブウィンドウでもMainWindow(親ウィンドウ)と同一のRegionManagerを使用するように設定した。そうしたら、新たな問題が発生した。 サブウィンドウを閉じて、また開くとエラーが発生する サブウィンドウでもMainWindow(親ウィンドウ)と…

Prismを使用してサブウィンドウでRegionを使用した場合に発生したエラーと対処方法・その1

Prismを使用したWPFアプリケーションを開発していて、サブウィンドウでRegionを使用した場合に発生したエラーと対処方法 次の画面に遷移できない 現象 Regionを使用した画面遷移 ウィンドウのXAMLにRegionを設定し、コードビハインドで、IRegionManagerイン…

PasswordBoxのバリデーションをMVVMアーキテクチャで実装する

前提のはなし WPFでマスクのついたテキストボックスを作成するには、PasswordBoxというコントロールが用意されている。 PasswordBoxに入力した値は、string型のPasswordプロパティから取得できるが、セキュリティ上はSecureString型のSecurePasswordプロパテ…

WPFアプリのWindowの閉じる・開くを、MVVMフレームワークを使用して実装する

WPFアプリケーションで、自作のボタンを押して画面を閉じて、新しい画面を表示する処理をMVVMフレームワークを使用して実装する方法を調べました。 MVVMフレームワークは、Prismを使用します。 自作のボタンを押して画面を閉じる 自作のボタンを押して画面を…

WPFアプリのMainWindowの終了のキャンセルを、MVVMフレームワークを使用して実装する

WPFアプリケーションで、×ボタンを押してメイン画面を閉じるときに、ある条件を満たす場合は閉じないようにしたい場合があります。言い換えると、終了のキャンセルをしたい場合があります。 コードビハインドを使えば、簡単に実装する事が出来ますが(参考: …

2重起動防止処理を組み込んだWPFアプリでClickOnceの更新と再起動を行う

タイトルでやりたい事を伝えきったので、やり方を説明します。 ClickOnceの更新方法は、探せば見つかると思いますので割愛します。 参考:ClickOnce に関するまとめ - Qiita ClickOnceによる更新は、アプリケーションを再起動しないと行われません。 なので…

エラーメッセージがViewを切り替えると消える事への対処方法

課題 バリエーションエラー 一つ前の記事で、第5回のエラー処理のサンプルを作成した時に、バリエーションによるエラーメッセージを表示した状態で、一覧から別の項目を選択すると、Viewが切り替わり、右側に新しい画面が表示される。 その後、元の項目を表…

Prismを使用したWPFアプリケーションのまとまったサンプルを作ってみた

新しく作成するアプリケーションで、Windows Forms、WPFで開発するか悩んでいるチームがあったので、 説明用にWPFのサンプルを作成したが、お披露目する前にWindows Formsで開発する事に決まったようなので、勿体無いのでこちらで公開しようと思う。 サンプ…