У меня не получается установить видимость или вызвать Show, исключение ShowDialog - PullRequest
0 голосов
/ 10 мая 2010

Я использую WAF (Wpf Application Framework) для создания диалога, как показано в примере приложения ModelView. Я пытаюсь создать простой AboutBox, отразив код для открытия диалогового окна CreateEmailAccountWizard. В первый раз отображается окно «О программе», но при повторном вызове из меню появляется следующее исключение:

Невозможно установить Visibility или вызвать Show, ShowDialog или WindowInteropHelper.EnsureHandle после закрытия окна.

Во-первых, я не знаю, что означает это сообщение. Во-вторых, что я делаю не так? Образец приложения не выдает это исключение при закрытии и повторном открытии диалогового окна CreateEmailAccountWizard. Мой код почти идентичен этому. Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 11 мая 2010

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

        var shellView = _container.GetExportedValue<IShellView>();
        _aboutDialogViewModel = _container.GetExportedValue<AboutDialogViewModel>();
        _aboutDialogViewModel.ShowDialog(shellView);

Мне также пришлось установить атрибут MEF в классе, чтобы он не использовал одиночный код:

[Export, PartCreationPolicy(CreationPolicy.NonShared)]
public class AboutDialogViewModel : ViewModel<IDialogView>
{
    [ImportingConstructor]
    public AboutDialogViewModel(IDialogView view) : base(view)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...