Невозможно установить для свойства «Владелец» закрытое окно. Исключение - PullRequest
3 голосов
/ 16 сентября 2011

Я использую WPF 4.0 и MVVM LIght ToolKit, у меня следующий код:

public partial class View1: Window
{
    /// <summary>
    /// Initializes a new instance of the FavoritesView class.
    /// </summary>
    public View1()
    {
        InitializeComponent();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {    
        Messenger.Default.Register<NotificationMessage>(this,
            (msg) =>
            {
                if (msg.Notification == "OpenDocument")
                {
                    DocumentView view = new DocumentView();
                    view.Owner=this;
                    view.ShowDialog();
                }
            });            
    }
}

Когда я много раз открываю-закрываю окно DocumentView, я получаю исключение».Зачем?Есть идеи?

Ответы [ 2 ]

4 голосов
/ 16 сентября 2011

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

Messenger.Default.Unregister(this);
2 голосов
/ 20 марта 2015

Вам нужно отменить регистрацию в сообщении о закрытом событии окна.Это позволит избежать повторной регистрации при создании нового экземпляра.

private void Window_Closed(object sender, RoutedEventArgs e)
{ 
   Messenger.Default.UnRegister<NotificationMessage>(this);
}
...