zoukankan      html  css  js  c++  java
  • Composite UI Application Block 初试

                                                初试Composite UI Application Block
    Composite UI Application Block主要用来创建一个聚合的智能客户端解决方案,客户端可以由一组功能块构建而成。
    一、用Composite UI 创建应用程序的一般步骤
            创建Shell
            创建Module
            创建对Services的引用
            创建和显示SmartParts
            用MVC和WorkItems开发
            创建定制的服务
            发布和订阅事件
            使用WorkItems
            显示UIElements
            注册Commands
        
        初次尝试仅创建Shell了,并使用了WorkItem和Controller。
            1.创建WinForm应用程序,添加一个主窗体Form1,在窗体中添加主菜单,并添加菜单项A ,B。分别生成菜单项A和B的点击事件.在窗体上添加DeckWorkspace
            2.修改Program类为非静态类,并让其继承FormShellApplication<WorkItem,Form1>。在Program中重写BeforeShellCreated和AfterShellCreated方法、方法体内分别调用了base.BeforeShellCreated()和base.AfterShellCreated() 、可以在调用基类的方法后再添加自己的代码。在Main内添加new Program().Run();
            3.创建自定义控件View1和View2,这两个自定义控件将被添加到主窗体的DeckWorkspace中。在类名上添加[SmartPart]
            4.创建MyWorkItem
            

        public class MyWorkItem : WorkItem
        {
            private View1 _view1;
            public void ShowView1(IWorkspace workspace)
            {
                if (_view1== null)
                    _view1= this.Items.AddNew<View1 >("View1 ");
                workspace.Show(this._view1);  
            }

            private View2 _view2;
            public void ShowView2(IWorkspace workspace)
            {
                if (_view2== null)
                    _view2= this.Items.AddNew<View2 >("View2");
                workspace.Show(this._view2);  
            }
        }

            5.创建MyController
            

        public class MyController : Controller
        {
            private WorkItem RootWorkItem
            {
                get { return base.WorkItem; }
            }

            private MyWorkItem _myWorkItem;
            public void ShowView1(IWorkspace workspace)
            {
                if (_myWorkItem==null)
                    _myWorkItem = RootWorkItem.Items.AddNew<MyWorkItem>();
                _myWorkItem.ShowView1(workspace);
            }

            public void ShowView2(IWorkspace workspace)
            {
                if (_myWorkItem == null)
                    _myWorkItem = RootWorkItem.Items.AddNew<MyWorkItem>();
                _myWorkItem.ShowView2(workspace);
            }
        }


            6.在Form1中注入MyController
                        private    MyController controller;
                        [CreateNew]
                        public     MyController Controller
                        {
                            set    {    controller=value;    }
                        }


            7.分别在A.B菜单事件中添加
                        controller.ShowView1(this.deckWorkspace1);
                        controller.ShowView2(this.deckWorkspace1);

  • 相关阅读:
    Browsermob-Proxy 备忘
    Restic 备份工具
    GP刷新实体视图
    SDKMAN安装使用
    The requested module '/node_modules/.vite/vue.js?v=65afd58f' does not provide an export named 'default'
    Python——执行打包提示 ‘pyinstaller‘ 不是内部或外部命令,也不是可运行的程序
    python 打包exe 方法
    Python使用阿里云镜像
    使用Python项目生成所有依赖包的清单方式
    Git GuiUI的乱码问题如何解决
  • 原文地址:https://www.cnblogs.com/heros/p/1031724.html
Copyright © 2011-2022 走看看