We analyzed your repro-sample application and found that you are setting the view models as the
DataContext of the Grids inside the views.
For a view model to participate in the navigation process of its view, it must be set as the
DataContext of the view itself (in this case, the DataContext of the
UserControls) rather that as the DataContext of its child elements.
In this case, as the DataContext property of the view does not contain its view model, Prism cannot find it and the
IsNavigationTarget method is never invoked.
For example, you can set the view model of your views doing something like this:
<Grid x:Name="LayoutRoot" Background="White" HorizontalAlignment="Center" VerticalAlignment="Center">
[ . . . ]
You can check that, after applying the aforementioned changes, the IsNavigationTarget
is now being properly invoked (remember to clean your solution beforehand.)
You can find more information about this in the following sections of the Prism documentation:
I hope you find this useful,