我知道我可以在以下地区获取所有已注册的观看次数:
var vs = mRegionManager.Regions[RegionNames.MainRegionStatic].Views.ToList();
我可以看到有以下代码:
mRegionManager.Regions[RegionNames.MainRegionStatic].ActiveViews
给出了一个Active View列表,但是我的区域附加到一个ContentControl,它总是有一个ActiveView。我误解了还是有办法获得单一的活动视图?
答案 0 :(得分:12)
var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault();
答案 1 :(得分:5)
var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault();
这是不正确的,因为它只会带来首先被激活的视图。不是当前有效/可见的视图。
无法找到直接解决方案,但这不涉及View或ViewModel上的自定义实现。
答案 2 :(得分:1)
好吧,您可以使用NavigationService
Journal
。它记录了应用程序中发生的所有导航。所以,你可以得到这样的视图名称:
string name = mRegionManager.Regions[RegionNames.MainRegionStatic].NavigationService.Journal.CurrentEntry.Uri;
然后你可以得到这样的观点:
mRegionManager.Regions[RegionNames.MainRegionStatic].GetView(name);
好吧,好吧? :)