2

MVVM アーキテクチャに WPF アプリケーションがあります。アプリケーションが読み込まれると、ユーザーがユーザー名とパスワードを入力する「ログイン」ウィンドウを表示する必要があります。

これは、WCF サービスに接続するクライアントを作成する ServiceLocator に渡されます。

質問 :

ビューの「.cs」ファイルでコード ビハインドを使用せずに、クライアントが正常に接続されたら、「ログイン」ウィンドウを閉じるにはどうすればよいですか?

4

3 に答える 3

0

ログインにダイアログサービスを使用し、イベントを公開します

event EventHandler<RequestCloseEventArgs> RequestCloseDialog;

クライアントが正常にログインすると、ダイアログが閉じます。

編集:これは例です

あなたのapp.xaml.cs

protected override void OnStartup(StartupEventArgs e)
{
    var result = this._dialogService.Show("Login",this._myloginviewmodel);

    // When use click cancel in the login dialog
    if(!result)
    { 
        // Close app or whatever
    }

    // Access the properties of myloginviewmodel if you want

    // Now the only part of my app where I use view-first instead of viewmodel-first
    this.MainWindow = new MainWindow(_mainwindowviwemodel);
    this.MainWindow.Show();
}

それはすべて myOnStartup()にあります。はい、それは my の分離コードですapp.xamlが、これは私のアプリケーション ルートであり、これが私にとっては問題ない理由です。app.xamlユーザーに「表示」されることはないため、AppViewModelなどはありません。

于 2012-07-12T07:17:44.577 に答える
0

ログイン画面をダイアログとして開くことができる Application クラスの OnStartup メソッドをオーバーライドできます。ユーザーが有効なデータを入力すると、ブール値を返すことができます。ログイン画面を閉じると、ブール値に基づいてさらにロジックを実行できます。

于 2012-07-12T07:21:58.223 に答える