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

转载于:https://www.cnblogs.com/zisezhixin/p/4287042.html

### 关于 SC WebUI 的技术资料或教程 在查找与 `SC WebUI` 相关的技术资料或教程时,可以利用搜索引擎的高级语法来缩小范围并提高效率。以下是针对您的需求的具体方法: #### 使用 GitHub 和 Stack Overflow 进行搜索 1. **GitHub 搜索** 可以通过以下查询语句在 GitHub 上寻找与 `SC WebUI` 相关的仓库或代码片段: ``` site:github.com SC WebUI ``` 此命令会返回所有包含关键词 `SC WebUI` 的 GitHub 项目和文件内容。 2. **Stack Overflow 搜索** 如果您希望了解如何使用 `SC WebUI` 或其常见问题解答,则可以通过以下方式在 Stack Overflow 中进行搜索: ``` site:stackoverflow.com SC WebUI usage ``` 此命令将帮助找到关于 `SC WebUI` 实际应用的相关讨论和解决方案[^3]。 #### 推荐的学习资源分类 除了上述两种主要渠道外,还可以参考一些通用性的学习站点类别获取更多信息: - 基础学习类网站可能提供入门级指导; - 开发文档类网站通常会有官方 API 文档或其他权威说明材料; - 解决开发难点类网站(如各种库、插件、开源项目的集合页面),也可能存在现成模块供调用; 对于更深入的研究或者具体实现细节上的疑问,借助像 Jasmine 测试框架这样的工具可以帮助验证行为逻辑正确与否[^1]。 最后提醒一点,在实际操作过程中如果遇到难以理解的概念或是复杂场景下的配置难题,请记得善加运用在线调试辅助程序比如 Chrome DevTools 来分析运行状况。 ```javascript // 示例:假设我们正在尝试集成某个 UI 组件到 Spring Boot 应用中 @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public Docket createRestApi() { return new Docket(DocumentationType.OAS_30) .apiInfo(new ApiInfoBuilder() .description("描述") .title("标题") .version("版本号") .build()) .groupName("分组名称") .enable(true) .select() .apis(RequestHandlerSelectors.basePackage("包路径")) .paths(PathSelectors.any()) .build(); } } ``` 此代码展示了如何在一个基于 Java 的 RESTful 微服务架构下定义 OpenAPI 文档接口,虽然它并非直接涉及前端 UI 部署过程,但对于前后端联调有着重要意义[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值