我正在尝试导航到相同的视图(与活动视图相同),但使用了新参数。问题是我很难找到一种干净的方法来从 RegionManager 获取当前活动视图的名称
问问题
2843 次
2 回答
4
根据我的理解,我建议在您的每个视图上实现一个接口,该接口提供必要的信息来确定它是哪个视图,然后使用 的ActiveViews
属性IRegion
来访问活动视图。
就像是:
//Interface for identifying the Views
public interface IApplicationView
{
string ViewName { get; }
}
//Example of a View with logic to determine which instance of the View it is
public class ApplicationView : UserControl, IApplicationView
{
public string ViewName
{
get { return this.isViewA ? return "ViewA" : return "ViewB"; }
}
}
//Example of determining which view
public class OtherComponent
{
public string GetActiveViewName(IRegion region)
{
IApplicationView activeView = region.ActiveViews.FirstOrDefault() as IApplicationView;
return activeView == null ? string.Empty : activeView.ViewName;
}
}
于 2013-09-09T14:44:16.157 回答
1
我不确定此方法是否在 Prism 4 中实现。但在 Prism 6 中,您可以使用NavigationService
Journal
.
例如:
string name = RegionManager.Regions["MainRegion"].NavigationService.Journal.CurrentEntry.Uri;
于 2018-06-05T16:32:07.857 回答