我试过这个:
public MyViewModel()
{
eventAggregator.GetEvent<ImportProgressReadyEvent().Subscribe(SubscriberMethod);
}
并且它可以正常工作,但是在页面导航和可见之前,SubscriberMethod()当然会在构造时被调用。有没有办法订阅一些事件处理程序(我假设它是'导航')一旦导航完成后会被调用?所以在我的ViewModel中我有这样的东西:
private void WhenNavigated()
{
eventAggregator.GetEvent<ImportProgressReadyEvent>().Subscribe(SubscriberMethod);
}
答案 0 :(得分:1)
您提到要在viewmodel中了解此事件,因此我认为您正在寻找INavigationAware
界面。它有三种方法:
public interface INavigationAware
{
bool IsNavigationTarget(NavigationContext navigationContext);
void OnNavigatedFrom(NavigationContext navigationContext);
void OnNavigatedTo(NavigationContext navigationContext);
}
导航视图后,OnNavigatedTo
将被触发,并且导入/创建了具有接口的视图模型。您也可以使用NavigationContext
参数在视图之间传递信息。