广告
返回顶部
首页 > 资讯 > 精选 >怎么用C#的CM框架实现多页面管理
  • 915
分享到

怎么用C#的CM框架实现多页面管理

2023-06-29 12:06:19 915人浏览 八月长安
摘要

本篇内容介绍了“怎么用C#的CM框架实现多页面管理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!传统方式后台代码:①定义集合并添加数据:pu

本篇内容介绍了“怎么用C#的CM框架实现多页面管理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

传统方式

后台代码:①定义集合并添加数据:

public IViewModel ActiveWindowView { get; set; }       public ObservableCollection<string> ListBoxItems { get; set; }       public string SelectedItem { get; set; }
ListBoxItems = new ObservableCollection<string>() { };           ListBoxItems.Add("shellView");           ListBoxItems.Add("EventAggregatorView");           ListBoxItems.Add("ConductorView");           ListBoxItems.Add("MatchTemplateView");           ListBoxItems.Add("IndicatorLightView");           ListBoxItems.Add("MemorandumView");           ListBoxItems.Add("FTPTestView");

  ②listbox选择改变后切换页面:

public void ListBoxItems_SelectionChanged()       {          switch(SelectedItem)           {               case "ShellView":                   ActiveWindowView = new ShellViewModel();break;               case "EventAggregatorView":                       ActiveWindowView = EventAggregatorViewModel.Instance; break;               case "ConductorView":                   ActiveWindowView = new ConductorViewModel(); break;               case "MatchTemplateView":                   ActiveWindowView = new MatchTemplateViewModel(); break;               case "IndicatorLightView":                   ActiveWindowView = new IndicatorLightViewModel(); break;               case "MemorandumView":                   ActiveWindowView = ioc.Get<MemorandumViewModel>(); break;               case "FTPTestView":                   ActiveWindowView = new FTPTestViewModel(new FTPConfig()); break;               default:break;           }       }

  ③前台绑定:

<ListBox Name="ListBoxItems" Grid.Column="0" SelectedItem="{Binding SelectedItem}" Margin="2"                 cal:Message.Attach="[Event SelectionChanged] = [Action ListBoxItems_SelectionChanged]"/>            <ContentControl Name="ActiveWindowView"/>

利用CM框架下Conductor<T>实现

① 后台代码:首先是需要继承Conductor<IViewModel>.Collection.OneActive这样才能使用这个类下面的方法和属性,其次是构造函数需要添加接收的接口IEnumerable<T>,这样改造完代码如下:

public MainWindowViewModel(IEnumerable<IViewModel> modules)      {          Items.AddRange(modules);          ActivateItem(Items.FirstOrDefault(vm => vm.GetType() ==typeof(IndicatorLightViewModel)));      }

  如果不考虑首次激活的页面那核心代码就只有一句:

Items.AddRange(modules);

②前台代码:

<ListBox Name="Items" Grid.Column="0"  Margin="2" DisplayMemberPath="DisplayName"/> <ContentControl Name="ActiveItem"/>

这样前后台就设置完事了,继承了一个框架的多屏幕管理类,使得前后台代码大幅度精简,功能上也没打折扣,准确说是更强大了,这就是CM框架的优势所在。

“怎么用C#的CM框架实现多页面管理”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么用C#的CM框架实现多页面管理

本文链接: https://www.lsjlt.com/news/324735.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用C#的CM框架实现多页面管理
    本篇内容介绍了“怎么用C#的CM框架实现多页面管理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!传统方式后台代码:①定义集合并添加数据:pu...
    99+
    2023-06-29
  • C# CM框架实现多页面管理的实例代码
    概述 之前我分享过一个wpf的项目实践,主页面左侧是个listbox,每次选择改变后呈现对应的页面,界面图如下 要实现这样一个功能,我之前是采用传统方式实现的,本节我采用CM框架下...
    99+
    2022-11-13
  • JavaScript怎么实现刷新框架及页面的功能
    这篇文章主要讲解了“JavaScript怎么实现刷新框架及页面的功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript怎么实现刷新框架及页面...
    99+
    2022-10-19
  • mui框架实现的页面无法滚动怎么办
    小编给大家分享一下mui框架实现的页面无法滚动怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!只需要初始化一下就可以了 mu...
    99+
    2022-10-19
  • java ssm框架的controller怎么实现向页面传递参数
    本篇内容主要讲解“java ssm框架的controller怎么实现向页面传递参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java ssm框架的controller怎么...
    99+
    2023-06-30
  • 怎么用jquery实现员工管理注册页面
    这篇文章主要讲解了“怎么用jquery实现员工管理注册页面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用jquery实现员工管理注册页面”吧!代码展示HTML页面代码<body&...
    99+
    2023-06-20
  • Linux中使用全局框架怎么实现内存管理
    Linux中使用全局框架怎么实现内存管理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一.  地址划分。1. CPU地址。CPU地址是指CPU的地址总...
    99+
    2023-06-16
  • 怎么用C++面向对象实现图书管理系统
    本文小编为大家详细介绍“怎么用C++面向对象实现图书管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用C++面向对象实现图书管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.题目:【1】:工作...
    99+
    2023-06-29
  • SpringBoot2 整合SpringSecurity框架是怎么实现用户权限安全管理
    这篇文章给大家介绍SpringBoot2 整合SpringSecurity框架是怎么实现用户权限安全管理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、Security简介1、基础概念Spring Security是...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作