Caliburn.Micro - делать что-то, когда представление становится видимым

Я сейчас вхожу в WPF и Caliburn.Micro, пока без чего-то вроде MEF или Autofac.

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

В соответствующем руководстве этот код отображает окно сообщения непосредственно перед отображением представления:

protected override void OnActivate() 
{   
    MessageBox.Show("Page Two Activated"); //Don't do this in a real VM.   
    base.OnActivate();   
}  

Mr. Затем Айзенберг пишет следующее:

Помните, что если у вас есть какая-либо логика активации, которая зависит от уже загруженного представления , вам следует переопределить Screen.OnViewLoaded вместо / в сочетании с OnActivate.

Вот что у меня есть:

protected override void OnViewLoaded(object view)
{
    base.OnViewLoaded(view);
    MessageBox.Show("OnPageTwoViewLoaded");
}

Я также пробовал это через Grid EventTrigger и cal: ActionMessage. Но во всех трех случаях MessageBox появляется до того, как представление становится видимым.

Я что-то упускаю, что я делаю не так?

6
задан user1018465 28 October 2011 в 16:48
поделиться