C#Prism navigationProblem

| 我有两个地区。导航区域和主要区域。 我的导航区域包含两个按钮,它们调用RequestNavigate方法。 第一个按钮加载没有任何参数的视图
this.tRegionManager.RequestNavigate(RegionNames.MainRegion, ViewNames.VInfoMainViewUri);
第二个按钮应使用某些参数加载相同的视图
  this.tRegionManager.RequestNavigate(RegionNames.MainRegion, new Uri(ViewNames.VInfoMainViewUri.OriginalString + \"\" + query.ToString(), UriKind.Relative));
如果未加载视图,则此方法工作正常。如果加载了任何视图,则单击任何按钮都不会导致任何结果。 我试图从我的区域中删除所有活动视图,但这会导致错误
IViewsCollection col = tRegionManager.Regions[args.RegionName].Views;
foreach (var obj in col)
{
   tRegionManager.Regions[args.RegionName].Remove(obj);

}
  该区域不包含指定的视图。   参数名称:视图 我该如何解决这个问题?     
已邀请:
如果即使区域中已经存在相同类型的现有视图也要创建新视图,则需要在View或ViewModel中实现
INavigationAware
接口(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章中进行了更详细的说明。他们也说明了它是如何工作的。     

要回复问题请先登录注册