范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

界面控件DevExpressWinFormMVVM服务讲解(一)

  DevExpress Universal Subscription官方最新版免费下载试用,历史版本下载,在线文档和帮助文件下载-慧都网
  考虑像显示来自 ViewModel 的通知(例如,消息框)这样的微不足道的任务,作为可视化元素,任何消息框实际上都是视图的一部分。 因此,如果你直接从 ViewModel 显示消息框(定义一个调用 MessageBox.Show() 方法的命令),这个简单的代码将破坏主要的MVVM概念 - ViewModels不能引用Views,并使其无法编写ViewModel的单元测试。为了解决这个困难,DevExpress MVVM 框架实现了服务。
  服务是一种 IOC 模式,它删除了 ViewModel 和 View 层之间的任何引用。 在代码中,服务是在 ViewModel 代码中使用的接口,没有任何关于"何时"和"如何"实现该接口的假设。
  您可以实现自己的自定义服务以及使用 DevExpress Services,无论您使用什么服务,通用工作流程都保持不变: 在代码中定义服务(如果您使用的是 DevExpress 已经实现的服务,则跳过); 在特定的视图中注册它; 在ViewModel中检索服务并使用其方法。 DevExpress Services
  DevExpress MVVM框架已经为大多数常见任务提供了现成的服务——显示消息、弹出窗口、对话框、添加应用程序 UI 管理器文档等。例如,以下 ViewModel 代码通过定义 IMessageBoxService 类型的属性来检索 XtraMessageBoxService。
  C# //ViewModel public class MyViewModel { protected IMessageBoxService MessageBoxService { get { return this.GetService(); } } }
  VB.NET "ViewModel Public Class MyViewModel Protected ReadOnly Property MessageBoxService() As IMessageBoxService Get Return Me.GetService(Of IMessageBoxService)() End Get End Property
  重要提示 :GetService方法不是线程安全的,不应从后台线程调用。
  对于 POCO ViewModel,您可以使用以下故障安全语法,该语法将自动使用 this.GetService 方法或在出现问题时引发异常。
  C# //POCO ViewModel protected virtual IMessageBoxService MessageBoxService { get { throw new System.NotImplementedException(); } }
  VB.NET //POCO ViewModel Protected Overridable ReadOnly Property MessageBoxService() As IMessageBoxService Get Throw New System.NotImplementedException() End Get End Property
  检索服务后,您可以在 ViewModel 中使用其方法:
  C# public void SayHello() { MessageBoxService.Show("Hello!"); }
  VB.NET Public Sub SayHello() MessageBoxService.Show("Hello!") End Sub
  最后,在视图中注册您的服务。 服务要么注册在本地容器中以在单个 View 中使用(本地服务),要么注册到允许您在整个应用程序中使用注册服务的全局静态(单例)服务容器(全局服务)。
  C# //Global service DevExpress.Mvvm.ServiceContainer.Default.RegisterService(new SomeService()); //Local service serviceContainer.RegisterService(new SomeFilterService(ModuleType.MyCustomFilter));
  VB.NET "Global service DevExpress.Mvvm.ServiceContainer.Default.RegisterService(New SomeService()) "Local service serviceContainer.RegisterService(New SomeFilterService(ModuleType.MyCustomFilter))
  当创建 ViewModel 时,服务也可以在运行时在服务容器中注册。
  C# this.ServiceContainer.RegisterService(new Services.AnotherService());
  VB.NET Me.ServiceContainer.RegisterService(New Services.AnotherService())
  最后,您可以通过在此级别提供自定义服务实现来覆盖 ViewModel 层次结构中任何级别的父级服务实现。
  C# serviceContainer.RegisterService(new NotImplementedCustomService(ModuleType.MyMainView));
  VB.NET serviceContainer.RegisterService(New NotImplementedCustomService(ModuleType.MyMainView))
  使用 MvvmContext 组件,您无需记住这个底层服务容器机制。 该组件的 API 提供了易于使用的方法来注册全局和本地级别的服务。
  C# //Static method that registers the global DevExpress XtraDialogService MVVMContext.RegisterXtraDialogService(); //Registers the Service1 service in the default service container (global service) mvvmContext1.RegisterDefaultService(new Service1()); //Registers the local Service1 for use within the current View only mvvmContext1.RegisterService(new Service2());
  VB.NET "Static method that registers the global DevExpress XtraDialogService MVVMContext.RegisterXtraDialogService() "Registers the Service1 service in the default service container (global service) mvvmContext1.RegisterDefaultService(New Service1()) "Registers the local Service1 for use within the current View only mvvmContext1.RegisterService(New Service2())
  许多随时可用的服务已经在全局静态容器中注册,因此您甚至不需要手动注册它们。 删除 MessageBox 服务演示中的 RegisterMessageBoxService 方法调用,您会注意到该服务仍在工作。
  如果需要,您可以重新定义这些服务注册,为此请使用 MVVMContext 类的相应静态 Register... 方法。 例如,XtraMessageBox Service 和 FlyoutMessageBox Service 示例的 ViewModel 与第一个示例的 ViewModel 相同。 所有三个 ViewModel 都检索实现 IMessageBoxService 的服务,但是使用不同的静态 Register... 方法会强制使用不同的服务。
  相同的方法允许来自 Dialog Services 组的示例显示不同的对话框,尽管 ViewModel 代码是相同的。
  C# protected IDialogService DialogService { get { return this.GetService(); } }
  VB.NET Protected ReadOnly Property DialogService() As IDialogService Get Return Me.GetService(Of IDialogService)() End Get End Property
  由于注册不同服务的视图代码而调用不同的对话框。
  C# //XtraDialog service MVVMContext.RegisterXtraDialogService(); //FlyoutDialog service MVVMContext.RegisterFlyoutDialogService();
  VB.NET "XtraDialog service MVVMContext.RegisterXtraDialogService() "FlyoutDialog service MVVMContext.RegisterFlyoutDialogService()
  DevExpress WinForm
  DevExpress WinForm拥有180+组件和UI库,能为 Windows Forms 平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

华为开始自救被美国封锁三年后,业绩开始下滑,五大战略出炉自2019年开始,美国政府就一直在对华为方面进行十分极限的打压。在美国政府极限施压华为之后,华为最近几年的日子,可是一点也不好过,而这一点从最近这几年华为的整体营收下滑的情况,我们京东自营售后专坑消费者本人给老家父母在去年国庆期间买个热水壶,一年质保。在今年3月坏掉,父母也不懂,没告诉我。我5。1期间回家发现水壶没有使用,询问父母后说坏啦。然后经过和京东客服沟通需要自行寄送给售后Q4将现折叠屏手机市场热潮,供应链暗流涌动距离小米首款折叠屏旗舰手机MIXFOLD发布刚刚过去一个月的时间,折叠手机屏供应链又再次蠢蠢欲动。三星折叠屏手机旭日大数据从折叠手机供应链了解到,华为小米荣耀的新一代折叠屏手机量产狗狗币究竟是何方神圣?来源海外网自问世起,币值累计涨幅1923倍,特斯拉创始人一路发推特助攻,从默默无闻到火出币圈狗狗币究竟何方神圣?一hr2013年12月6日,狗狗币横空出世。据创始人透露,其创立初衷一加9R一款实至名归的品质旗舰五月份即将结束,这意味着离一年一度的618狂欢大促越来越近了。相信有不少小伙伴已经备好钱包准备淘宝。在手机圈同样如此,不少等等们等的就是这一刻,不过在618到来前,还得为自己挑选好比特币,终于还是爆仓了,多年积累化为灰烬心中凌乱,却也踏实了。昨天,比特币账户终究还是爆仓了,止损根本止不掉,亏损196万多,在二三线城市买套房子,也是绰绰有余了,奈何造化弄人。去年开的一个国内期货账户,由于最终去做比特破解公益行业数字化三不足腾讯做了这些探索见圳客户端深圳新闻网2021年5月21日讯(深圳商报讯记者陈姝)在昨日举行的2021中国互联网公益峰会上,由腾讯基金会联合腾讯研究院制作的2021公益数字化研究报告正式发布。资料图一文了解ETHGas费机制使用过ETHERC20协议的用户,一定会因为其转账时的高额Gas费用头疼不已。Gas费问题是目前ETH1。0面临最严重的问题之一,尽管ETH的基础设施相对完善,算力较高,但任务能力豫见517云边智联,乘风破浪!5G边缘计算技术与产业会议圆满召开如果说2019年是边缘计算的爆炸性增长年,2020年是边缘计算的突破年,那么2021年边缘计算将迎来发展的拐点。随着5G发展的升温,边缘计算作为核心技术也站上了风口2021年5月1Windows102021年5月更新现已正式推出Windows102021年5月更新现已正式推出!自从微软正式开始测试Windows102021年5月更新(也称为21H1版)以来已经有几个月的时间了,WindowsInsider比亚迪唐DMi和理想ONE核心技术与可靠性对比2021年上海车展,比亚迪王朝旗舰SUV车型唐DMi正式上市,售价区间从18。98万元至21。68万元。相比全新一代唐DM车型,搭载DMi超级混动技术的唐DMi主打极致高效能,追求
中国电信宽带办理注销,可以在网上进行办理吗?需要注意什么?在疫情期间,应该允许网上办理销户。开户人不常住这个宽带的安装地点,不能为了销户就往返千里辛苦两天!可以委托亲友把光猫机顶盒以及相关的配件送回开户的营业厅,也可以用微信视频连线开户人自来水管能直出100纯净水?九阳黑科技净水器值得入手吗只需要13秒钟,就可以把充满水锈和泥沙的地下水,变成可以让我们直接饮用的100摄氏度热水是什么感受?最近载人航天太空厨房研制单位九阳在一代R660热小净的基础上再做了升级,研发出了欧盟成员国与欧洲议会就数字服务法案达成一致新华社布鲁塞尔4月23日电欧盟成员国与欧洲议会的谈判代表23日就欧盟数字服务法达成一致。该法案要求互联网平台企业采取更多措施删除非法和有害的在线内容,包括仇恨言论虚假信息和假货交易陈经玩区块链游戏能挣钱?骗局来源环球时报近来,菲律宾国内有超过15万年轻人沉迷于玩一款宠物养成游戏赚钱。其原理是玩家通过饲养一个小精灵获得电子卡牌。这种卡牌其实是一种虚拟货币,玩家可在专门的网络加密交易平台自生鲜电商扩大备货库存,已经提高到日常的23倍品玩4月25日讯,针对近日北京疫情形势,京东七鲜盒马鲜生叮咚买菜美团买菜于24日晚间接连发布公告,围绕货品的平稳供应货品消杀补充配送人员等多个方面进行了情况说明。据京东七鲜介绍,目南财合规周报(第41期)知网风波再引反垄断呼声,欧盟拟严管个性广告与内容算法21世纪经济报道记者蔡姝越,实习生吴峰上海报道4月26日,是世界知识产权日。本周(4月18日4月24日),知识产权周的到来让社会各界的目光再次聚焦至知产保护这一话题上。4月24日,有没有一天能收入3050的手机兼职?我找的是一个晚上的兼职,每天干56小时,干了五年多了没有影响白天的正常工作开始的时候也觉得很累坚持下去了所以现在也一直都在干。加油送给你,也送给我自己。下班后,充分利用自己的空闲时社工具体工作都是什么?大家好!我是郭大姐,很高兴回答这个问题。首先,社工要具备很好的思想素质和高尚的品质,并具备有一定的专业知识技能和方法来解决社会问题。主要服务于街道办社区等基层的弱势群体,以特定的社工信部发布行业标准规范手机图像视频防抖性能技术要求鞭牛士4月25日消息,据中新网报道,中国工业和信息化部24日发布首个移动终端图像及视频防抖性能技术要求和测试方法,这也是手机等移动终端摄像头防抖通信行业标准,适用于全球品牌手机制造东风日产ePOWER快顺静省的新体验随着新能源汽车技术的日趋成熟,整个汽车市场展现出了全新的发展态势,消费者的用车需求也呈现出了更加多元化的局面。而电动汽车具有使用经济性高,动力输出稳定以及驾乘舒适性高等一系列远超传iPhone14变化大了!迎来库克紫新配色,USBC接口会有吗?iPhone14还没发布,爆料就接踵而至,不过大家也别对iPhone14系列有什么过高的期望,毕竟每年的iPhone都大同小异,在软硬件方面已经没有什么太大突破了,每代只是小升级,