正确的方法INavigationAware
是在您的 View 或 ViewModel 中实现(Prism 将首先检查视图,如果未实现INavigationAware
,它还将检查 ViewModel)。
您对该方法特别感兴趣,该IsNavigationTarget
方法告诉 Prism 是否应重用 View 的当前实例,或者是否应创建另一个实例以满足导航请求。因此,要始终创建一个新视图,您将执行以下操作:
public class MyViewModel : INavigationAware {
bool INavigationAware.IsNavigationTarget(NavigationContext navigationContext)
{
return false;
}
void INavigationAware.OnNavigatedFrom(NavigationContext navigationContext)
{
}
void INavigationAware.OnNavigatedTo(NavigationContext navigationContext)
{
}
}
所有这些都在 Prism 4 文档的第 8 章中进行了更详细的解释;他们还提供了它如何工作的说明,这非常好,因为它还可以让您确切地知道可以在哪里以及如何连接。