Я сейчас вхожу в 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 появляется до того, как представление становится видимым.
Я что-то упускаю, что я делаю не так?