/// <summary> /// Attach a navigation failed event handler to every region /// </summary> /// <param name="regions"></param> private void MonitorRegions(IEnumerable <IRegion> regions) { foreach (var region in regions) { Debug.WriteLine("RegionNavigationService: {0:X}", region.NavigationService.GetHashCode()); // prove that they're all unique var r = region; region.NavigationService.NavigationFailed += (s, e) => { var msg = $"Error navigating to view {e.NavigationContext.Uri} for region {r.Name}"; SessionLogger.Write(e.Error, msg); EventManager.GetEvent <GenericNotificationEvent>().Publish(msg); }; region.NavigationService.Navigating += (s, e) => { SessionLogger.Debug("Loading view: '{1}' for region '{0}'", r.Name, e.NavigationContext.Uri); }; region.NavigationService.Navigated += (s, e) => { SessionLogger.Debug("Loading complete: view '{1}' for region '{0}'", r.Name, e.NavigationContext.Uri); }; } }