zoukankan      html  css  js  c++  java
  • SC.UI

    IController

    using Microsoft.Practices.Prism.Events;
    using Microsoft.Practices.Prism.Regions;
    using Microsoft.Practices.Unity;
    
    namespace SC.UI
    {
        public interface IController : ISingletonDependency
        {
            void SubscribeEvents();
    
            void UnsubscribeEvents();
    
            IUnityContainer UnityContainer { get; set; }
    
            IRegionManager RegionManager { get; set; }
    
            IEventAggregator EventAggregator { get; set; }
    
            void AttachView(IViewModel viewModel);
    
            void RemoveView(IViewModel viewModel);
    
            void AttachView(string zoneName, IViewModel viewModel);
    
            void RemoveView(string zoneName, IViewModel viewModel);
        }
    }

    Controller

    using Microsoft.Practices.Prism.Events;
    using Microsoft.Practices.Prism.Regions;
    using Microsoft.Practices.Unity;
    
    namespace SC.UI
    {
        public abstract class Controller : NotificationObject, IController
        {
            public Controller(
                IRegionManager regionManager,
                IEventAggregator eventAggregator,
                IUnityContainer unityContainer)
            {
                RegionManager = regionManager;
                EventAggregator = eventAggregator;
                UnityContainer = unityContainer;
            }
    
            public IUnityContainer UnityContainer { get; set; }
    
            public IRegionManager RegionManager { get; set; }
    
            public IEventAggregator EventAggregator { get; set; }
    
            public virtual void SubscribeEvents() { }
    
            public virtual void UnsubscribeEvents() { }
    
            public void AttachView(IViewModel viewModel)
            {
                AttachView(RegionNames.MainRegion, viewModel);
            }
    
            public void AttachView(string regionName, IViewModel viewModel)
            {
                var zone = RegionManager.Regions[regionName];
    
                if (null != zone && !zone.Views.Contains(viewModel))
                {
                    zone.Add(viewModel);
                }
            }
    
            public void RemoveView(IViewModel viewModel)
            {
                RemoveView(RegionNames.MainRegion, viewModel);
            }
    
            public void RemoveView(string regionName, IViewModel viewModel)
            {
                var region = RegionManager.Regions[regionName];
    
                if (null != region && region.Views.Contains(viewModel))
                {
                    region.Remove(viewModel);
                }
            }
        }
    }

    ModuleBase

    using Microsoft.Practices.Prism.Events;
    using Microsoft.Practices.Prism.Modularity;
    using Microsoft.Practices.Prism.Regions;
    using Microsoft.Practices.Unity;
    
    namespace SC.UI
    {
        public class ModuleBase : IModule
        {
            protected IUnityContainer UnityContainer { get; private set; }
            protected IEventAggregator EventAggregator { get; private set; }
            protected IRegionManager RegionManager { get; private set; }
    
            public ModuleBase(
                IUnityContainer unityContainer,
                IEventAggregator eventAggregator,
                IRegionManager regionManager)
            {
                UnityContainer = unityContainer;
                EventAggregator = eventAggregator;
                RegionManager = regionManager;
            }
    
            public void Initialize()
            {
                ConfigureContainer();
                InitializeModule();
                SubscribeEvents();
            }
    
            protected virtual void ConfigureContainer() { }
    
            protected virtual void InitializeModule() { }
    
            protected virtual void SubscribeEvents() { }
    
            protected virtual void UnSubscribeEvents() { }
        }
    }

    IViewModel

    using System.ComponentModel;
    
    namespace SC.UI
    {
        public interface IViewModel : INotifyPropertyChanged, ISingletonDependency
        {
    
        }
    }

    ViewModelBase

    namespace SC.UI
    {
        public class ViewModelBase : NotificationObject, IViewModel
        {
            public ViewModelBase()
            {
    
            }
        }
    }

    ISingletonDependency

    namespace SC.UI
    {
        public interface ISingletonDependency
        {
        }
    }
    http://files.cnblogs.com/files/zisezhixin/SC.UI.zip
  • 相关阅读:
    该伙伴事务管理器已经禁止了它对远程/网络事务的支持
    HDU 4883 TIANKENG’s restaurant (贪心)
    Android:创建可穿戴应用
    debian支持ll命令
    mongodb进阶一之高级查询
    Hadoop之——又一次格式化hdfs系统的方法
    J2EE的13个规范之(二) JDBC 及其使用
    2015欧冠决赛--脑力劳动结硕果
    运行计划之误区,为什么COST非常小,SQL却跑得非常慢?
    QVariant与自定义数据类型转换的方法
  • 原文地址:https://www.cnblogs.com/zisezhixin/p/4287042.html
Copyright © 2011-2022 走看看