2016-06-13 17 views
0

私のUserControlウィンドウに問題があります。 私はMainWindowを持っていて、特定の場所が現れたら、別のUserControlが開きます。 コマンドを送信するボタンが2つあり、それ以降は閉じる必要があります。 今すぐウィンドウを開き、コマンドを送信しますが、その後は閉じません。 私があなたを助けてくれることを願っています。 コード: XAML: UserControlウィンドウが閉じない

C#: ユーザーコントロールを開くために、コード:

Window window = new Window(); 
window.Content = new MsgBox(); 
window.ShowDialog(); 

ボタンの宣言: 公共DelegateCommand OkBtn {取得します。セット; }

Buttonfunctionボタンに加え:

OkBtn = new DelegateCommand<object>(OkBtnFkt); 

このButtonfunctionのようなものがあるはず:はwindow.close();

私が試したこと:

Window.Close(); Dispatcher経由でWindow.closeをUIに送信します

+0

表示できるコードはありますか? – Nzc

+0

いくつかのコードを追加しました – Evosoul

+0

あなたはまだ何が起こっているのかを完全に理解するのに十分なコードを表示していません。例えば、あなたの 'MsgBox'(UserControlであると思われます)は親(Window)をどうやって閉じますか?カスタムルックを持つメッセージボックスが必要な場合は、UserControlの代わりにWindowをサブクラス化してみませんか? – Jai

答えて

0

回答が見つかりました。 この投稿には私の答えがありました: http://www.codeproject.com/Questions/91746/Close-WPF-user-control-inside-WPF-form-application

+0

最後に、usercontrolから親ウィンドウの参照を取得できないという問題がありますか? – Jai

+0

そうですね。アプリケーションはメインウィンドウの内側にあり、クローズコールを実行できないと考えました。私はボタンのコマンドパラメータのために新しく作成されたウィンドウを選択しなければならなかった。 – Evosoul

0

ウィンドウのDialogResultを設定できます。あなたが実際に持っているのは、内部にUserControlがあるウィンドウです。 Windowから派生させるMsgBoxWindowを作ることができます。コントロールと閉じるボタンを内側に置きます。次に、閉じるボタンをクリックするとDialogResultを設定できます。とにかく

https://msdn.microsoft.com/en-us/library/system.windows.window.dialogresult(v=vs.110).aspx

なぜあなたはメッセージボックスを使用していませんか?

+0

私の "ウィンドウ"はUserControlであり、私はそれを閉じる必要があります。私もこの質問にいくつかのコードを追加しました – Evosoul

+0

私は設計されたメッセージボックスが必要です。それは別のものに使うべきです。しかし実際には、私は単に設計されたMessageBoxをほしいと思っています – Evosoul

関連する問題