タイトルによれば、ダイアログを閉じることなくDialogResultを設定することはできますか?ダイアログを閉じることなくDialogResultを設定します
おそらく簡単な答えはNOですが、それはなぜですか? DialogResult=
の背後にある行動は何ですか?それを無効にする方法はありますか?
なぜ私はこのようなものが必要なのか誰にでも、簡単な答えは好奇心です。この好奇心の後ろの歴史は、「私は私のViewModel.Myアプローチからダイアログウィンドウを呼び出ししようとしていますが、ダイアログその例には、以下の
の混合物であるということです戻り値(True(Ok)/ False(Cancel))がある場合、Dialogsを処理しているクラスの値をダイアログのviewModelから渡してから、親ウィンドウ/コントロールを取得するためにDialogResult
として設定する必要がありますダイアログが戻ったり閉じたりしたときにそれを返します。 「ダイアログのクローズが」dialog.Close();
を呼び出す前に、出力に出力されたときに、これは、ダイアログが閉じて、失敗しませんが
それをテストするための最小限のコードスニペットは、
dialog.DialogResult = TheResult;
Debug.WriteLine("Dialog Closed");
dialog.Close();
のようなものです。 Window.Closing
イベントを無効にすると、dialog.DialogResult
を呼び出すと起動することがありますが、その後はdialog.Close();
が呼び出されたときは表示されません。
注:上記のコードが機能し、望ましい機能を損なわないため、全体的な質問は「好奇心から」です。
にOnStartupイベントでShowDialogメソッドを使用してメインウィンドウを開いた私がテストされたコードであり、あなたはそれが実際に '閉じる()'を呼び出す前に閉じてよろしいですか?例外はありますか?より多くのコードを表示できますか? –
@PatrickHofmanさらに詳しい情報を追加しました。私のコードの残りの部分は無関係だと思います。また、私には例外がありません。 – Athafoud