using JamSoft.CALDemo.Modules.PageManager.Core; using Microsoft.Practices.Composite.Events; using Microsoft.Practices.Composite.Regions; using Microsoft.Practices.Composite.Wpf.Events; using Microsoft.Practices.Unity; namespace JamSoft.CALDemo.Modules.PageManager { public class MainRegionController : IMainRegionController { private readonly IUnityContainer _container; private readonly IRegionManager _regionManager; private readonly IEventAggregator _eventAggregator; private object _currentView; private IRegion _mainRegion; public MainRegionController(IUnityContainer container, IRegionManager regionManager, IEventAggregator eventAggregator) { _container = container; _regionManager = regionManager; _eventAggregator = eventAggregator; Initialize(); } private void Initialize() { _eventAggregator.GetEvent<PageSelectedEvent>().Subscribe(PageSelected, ThreadOption.UIThread, true); _mainRegion = _regionManager.Regions["MainRegion"]; } private void PageSelected(IPage page) { if (page != null) { ShowPage(page); } } private void ShowPage(IPage page) { object newView = page.View; if (_currentView != null) { _mainRegion.Remove(_currentView); } if (newView != null) { _mainRegion.Add(newView); _mainRegion.Activate(newView); } _currentView = newView; } } }
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)