0

「OK」、「キャンセル」、「適用」ボタンのあるモーダル ダイアログ ウィンドウを持つ vb.net WPF アプリケーションがあります。[適用] ボタンは [OK] ボタンと同じ機能を果たしますが、[適用] をクリックするとモーダル ダイアログ ボックスが開いたままになります。通常、私は ShowDialog を呼び出してモーダルを表示するのが好きですが、モーダルが戻ったときにモーダルが閉じられるため、「適用」ボタンがあるモーダルでは使用できません。誰かが私に簡単な回避策を提供できますか? 別の方法は、.Show を使用してモーダル ダイアログ ウィンドウを表示することですが、この場合、ユーザーがボタンの 1 つをクリックしたときに値を適切に返す方法がわかりません。

ありがとう!

4

2 に答える 2

2

ダイアログのクローズは、ユーザーが [OK] ボタンをクリックしたときに実行されるコードによって処理されます。したがって、Close() 呼び出しと DialogResult を設定する呼び出しを除いて、すべてのコードを関数に移動できます。次に、OK ハンドラー (または ICommand) と Apply ハンドラー (または ICommand) の両方からその関数を呼び出すことができます。次に、[適用] ボタンから Close() を呼び出さないでください。

于 2012-12-10T16:50:35.760 に答える
0

[適用]ボタンのあるダイアログは一般にモーダルではありませんが、1つのアプローチは、ダイアログをインスタンス化し、ダイアログをDataContext呼び出す関数とダイアログ自体の間でダイアログデータを共有できるViewModelを提供することです。次に、[適用]ボタンを配線して、モーダルダイアログと任意のViewModelコードで処理できるようにします。おそらく、ICommandバインディングを使用します。

サンプルが役立つかどうかお知らせください。

于 2012-12-10T16:50:03.147 に答える