私はCaliburn.Microが新しく、私のアプリケーションでユーザーのログイン/ログアウトサイクルを処理する最良の方法は何か不思議です。私は、LoginViewとメインのアプリケーションビューを切り替える空のShell-Viewを使用して、これを実装するためにいくつかの提案をオンラインで見てきました。それぞれカスタムViewModelがあります。Caliburn.Microでログイン/ログアウトを処理するにはどうすればよいですか?
私はこれらが非常に異なるプロパティ(タイトル、アイコン、サイズ)を持つ2つの別々のウィンドウであり、2つのウィンドウを1つのウィンドウを他のウィンドウと同じように変更するのは汚れているようです。もう1つの問題は、ログインウィンドウが私が制御しないユーティリティライブラリから来て、Caliburn.Microを使用していないということです。ユーザーが「ログイン」をクリックしたときに私にイベントを与える普通の古いウィンドウです。
また、このダイアログをブートストラップの起動方法で表示することを提案しましたが、私が見ている問題は、ユーザーがログインダイアログを再度表示する必要があるアプリケーションの「ログアウト」を選択できることです。ブートストラップのビュー間の切り替えを処理するのは間違っているようです。
私が望むのは、Caliburn Conductorのように動作するApplicationViewModelやApplicationControllerのようなものですが、ウィンドウ内のビューを切り替えるのではなく、LoginWindowとMainWindowを切り替える必要があります。アプリケーション全体(ログアウトも必要)。アクティベーションでは、LoginWindowが表示され、Loginイベントを処理してメインウィンドウ(シェル)に切り替えます。ユーザーが "LogOut"を選択した場合、イベントはApplicationViewModel/Controllerに再度吹き込み、MainWindowを非アクティブ化/閉じる、ログアウトを実行して、再度LoginDialogを表示する必要があります。同様のCloseイベントはLogoutを行いますが、アプリケーション全体をシャットダウンします。
だから私の質問は以下のとおりです。
- あなたはこのソリューションについてどう思いますか、あなたは別の/より良いものを持っていますか?
- これはどのように実装しますか? ;-)
ありがとうございます!
をログアウトイベントは次のようになりますあなたはWPFかWinFormsですか?また、ログインウィンドウは、ユーザーを認証する実際の作業を行うか、「ログイン」イベントを処理して行う必要がありますか? – Kioshiki
WPFウィンドウを開き、IoCコンテナから取得した認証サービスを使用して処理するログインイベントを発生させます。 – aKzenT