public DesktopViewModel(IStartupNotifier startupNotifier, IApplicationDetails applicationDetails, IViewNavigator regionNavigator, IMenuBarManager menuBarManager) : base() { StartupNotifier = startupNotifier; ApplicationDetails = applicationDetails; if (!MenusCreated) { MenusCreated = true; regionNavigator.EnqueueUIWork(() => { menuBarManager.Create(@"_File\Save To Xml", EndPoint.Root, o => regionNavigator.SaveMainRegionDataToXml()); }); } }
private void Navigating(IMenuBarManager barManager, IViewNavigator navigator, NavigationEventArgs e) { Stack<Action> cleanup; foreach (var owner in _CleanupsByOwner .Where(kvp => kvp.Key != EndPoint.Root && kvp.Key != e.Destination) .Select(kvp => kvp.Key) .ToList()) { cleanup = _CleanupsByOwner[owner]; while (cleanup.Count != 0) { cleanup.Pop()(); } _CleanupsByOwner.Remove(owner); } }