2012-01-18 22 views
0

parentWindow(非モーダル)からchildwindowを開いたとき - childWindowが終了したときにparentWindowが知るように 'wait'を達成する最良の方法は何ですか?いくつかの理由から私はshowDialog()を使うことができません。私はwhileループを試しましたが(childWindowのvisibilityプロパティをテストしています)、それはちょうど壊れます(例外はありませんが、childWindowは開かない)。それはマルチスレッドのケースですか?非モーダルウィンドウが閉じたときを知る必要がある

+0

なぜモーダルダイアログを使用できないのですか? – Matten

答えて

4

childWindowが閉じたときparentWindow が知っているように、「待機」を達成するための最善のアプローチは何ですか?

イベントを使用すると、子ウィンドウが閉じるときに親ウィンドウが通知されます。例えば、there is the Closed event

Window childWindow = new .... 
childWindow.Closed += (sender, e) => 
    { 
     // Put logic here 
     // Will be called after the child window is closed 
    }; 
childWindow.Show(); 
+0

ありがとうKen。ちょうど私が探しているもの。好奇心から - これはラムダを使って書かれていますか? –

+1

はい、ラムダ式です。一方、標準のイベントハンドラよりも簡潔で簡単ですが、 ' - ='演算子で簡単にイベントを切り離すことはできません。私は参照してください。 – ken2k

+0

どうもありがとう。私はラムダでやっているリビジョンとうまくつながっています。私はまだ送信者とeがどこから来ているのかかなり混乱していますが、私はそれを取得します。 –

1

私はあなたがこれを使用することができると思う:

public ShowChild() 
    { 
     childWindow child = new childWindow(); 
     child.Closed += new EventHandler(child_Closed); 
     child.Show(); 
    } 

    void child_Closed(object sender, EventArgs e) 
    { 
     // Child window closed 
    } 
関連する問題