アプリケーションがしばらく非アクティブになった後にログインダイアログを表示するスクリーンロック機能を備えたWPFデスクトップアプリケーションで作業しています。ユーザーがコンピューターから離れて、モーダル ダイアログ (ログイン ダイアログ以外) がアプリで開かれるまで、すべてがうまく機能します。
シナリオの簡単な要約:
- ユーザーがアプリケーションで何かを削除します。
- 削除の確認 (モーダル) ダイアログが開き、[削除] および [キャンセル] オプションが表示されます。
- モーダル ダイアログが表示されている間、ユーザーは少し立ち去ります。
- しばらくすると、確認ダイアログが非表示になり、ログイン ダイアログが開きます。
ここにコードの一部があります
var deleteConfirmationDialog = new deleteConfirmationDialog(deleteConfirmationViewModel);
var dialogResult = deleteConfirmationDialog.ShowDialog();
if (dialogResult ?? false) { //Delete item }
問題は、deleteConfirmationDialog が非表示のときにログイン (モーダル) ダイアログが開かれると、deleteConfirmationDialog からの dialogResult が dialogresult == false で返されることです。
技術的な実装と哲学はさておき、ダイアログを閉じていないのに、ShowDialog() が DialogResult == false を返すのはなぜですか? deleteConfirmationDialog が False を返さないようにする方法はありますか?
事前にどうもありがとうございました!これの一部が意味をなさない場合は、お知らせください。