Есть ли способ повторно использовать уже закрытый экземпляр окна WPF - PullRequest
2 голосов
/ 07 августа 2009

У меня есть экземпляр Window, который я показываю, вызывая wInstance.ShowDialog () от нажатия кнопки, и я закрываю окно нажатием Alt + F4 Проблема в том, что я не могу снова вызвать wInstance.ShowDialog (). Как я могу снова использовать тот же экземпляр окна снова.

Исключение: Невозможно установить Visibility или вызвать Show или ShowDialog после закрытия окна.

Ответы [ 3 ]

9 голосов
/ 09 августа 2009

Необходимо переопределить метод OnInlosance wInstance, чтобы установить видимость окна на скрытое, и отменить событие закрытия.

 protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
    {
        this.Visibility = Visibility.Hidden;
        e.Cancel = true;
    }
1 голос
/ 07 августа 2009

Что именно делает столь важным использование одного и того же окна? Если вы используете MVVM, вы можете просто использовать модель представления для нового окна.

0 голосов
/ 29 апреля 2010

Я повторно использую окно в качестве диалогового окна, которое использует древовидное представление, и клиент хочет, чтобы ветви дерева оставались открытыми для большего выбора.

Переопределение сработало для повторного использования, а ветви остаются развернутыми.

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

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