Window.Show () отображает новое окно и затем исчезает за основным окном - PullRequest
3 голосов
/ 27 сентября 2011

Я занимаюсь разработкой приложения Prism, в котором мне нужно опубликовать модели представления в новом окне.Для этого я создал сервис, посвященный публикации этих view-моделей.Я называю это так:

windowService.Publish(myViewModel);

И тело метода Publish выглядит так:

public void Publish(FloatingViewModel viewModel)
{
    var floatingWindow = ServiceLocator.Current.GetInstance<FloatingWindow>();

    floatingWindow.DataContext = viewModel;
    floatingWindow.Show();
}

После выполнения метода Show () новое окно быстро появляется вышемое главное окно, а затем исчезает за моим главным окном, как если бы оно вернуло фокус.

Кто-нибудь знает, откуда могло возникнуть это поведение?

1 Ответ

0 голосов
/ 30 сентября 2011

Я наконец-то нашел проблему, и она оказалась намного глубже, чем я думал. Этот ответ не будет иметь отношения к описанной проблеме, так как основная причина была совершенно другой.

Код, который публиковал модель представления в окне, был фактически вложен в команду WPF, и эта команда была присоединена к событию MouseDoubleClick через InvokeCommandAction. Я обнаружил, что даже когда вы связываете событие с командой, событие не помечается как обработанное и поэтому будет распространяться до тех пор, пока оно не будет обработано. Это заставило мое главное окно вернуть фокус.

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