WPF Window.GetWindow (это) странное поведение? - PullRequest
0 голосов
/ 11 февраля 2010

У меня есть UserControl в Window. В течение срока службы приложения, что Window иногда закрывается, и когда пользователю это нужно снова, создается новый экземпляр.

В какой-то момент UserControl должен отобразить диалоговое окно и передать родительский элемент управления этому диалоговому окну в качестве владельца. Вот подвох: в первый раз Window создается и элемент управления должен показать диалог, все работает просто отлично. Он вызывает Window.GetWindow(this) и передает результат в диалог. Однако, когда Window закрывается, а затем создается новый экземпляр и UserControl открывает диалоговое окно, я получаю следующее исключение:

Невозможно установить для свойства «Владелец» закрытое окно.

Всякий раз, когда создается Window, этот код называется:

var window = new ControllerConfigurationWindow() { Owner = this };

Так что это явно новый экземпляр, и, конечно же, при отображении диалогового окна окно открыто ... Я его нигде не закрываю ...

Так что мне интересно - и это не имеет смысла в моей голове, когда я говорю это - но может ли быть так, что Window.GetWindow(this) как-то дает мне родителя старого экземпляра?

1 Ответ

1 голос
/ 11 февраля 2010

Неважно ... Я не думал ... Вот что произошло:

Когда окно создано, обработчики событий подключаются, но я никуда их не отцепил ... так что код был действительно вызвано окно, которое уже было закрыто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...