В настоящее время я вхожу в WPF и Caliburn.Micro, пока без чего-то вроде MEF или Autofac.
Прямо сейчас я пытаюсь выполнить некоторый код в модели просмотра сразу после того, как ее представление станет видимым.
В связанном руководстве этот код отображает окно сообщения непосредственно перед отображением представления:
protected override void OnActivate()
{
MessageBox.Show("Page Two Activated"); //Don't do this in a real VM.
base.OnActivate();
}
Затем г-н Айзенберг пишет следующее:
Помните, что если у вас есть какая-либо логика активации, которая зависит от уже загруженного представления, вы должны переопределить Screen.OnViewLoaded вместо / в сочетании с OnActivate.
Вот что у меня есть:
protected override void OnViewLoaded(object view)
{
base.OnViewLoaded(view);
MessageBox.Show("OnPageTwoViewLoaded");
}
Я также пробовал это через Grid EventTrigger и cal: ActionMessage. Но во всех трех случаях MessageBox появляется раньше, чем представление становится видимым.
Конечно, я что-то упускаю, что я делаю не так?