Правильный способ сделать это - реализовать 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)
{
}
}
Все это объясняется более подробно в главе 8 документации Prism 4; у них также есть иллюстрация того, как это работает , что очень приятно, потому что оно также позволяет вам точно знать, где вы можете подключиться и как.