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
  • 相关阅读:
    【转载】[C#]Log4net中的RollingFileAppender解析
    【转载】大数据量传输时配置WCF的注意事项
    Sql 数据引擎中删除用户名、密码信息
    win10 HTTP 错误 500.21
    SQL Server 将Id相同的字段合并,并且以逗号隔开
    C#中2个日期类型相减
    sql server 查询本年的每个月的数据
    sql server 查询本周、本月所有天数的数据
    sql server中的日期函数
    Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
  • 原文地址:https://www.cnblogs.com/zisezhixin/p/4287042.html
Copyright © 2011-2022 走看看