• DevExpress WinForm控件入门指南:标准服务 MessageBoxService


    DevExpress Services将命令从ViewModel传递到View中的控件,这允许您在不分离应用程序层的情况下修改 UI。

    获取工具下载 - DevExpress v21.2

    可用服务
    • MessageBoxService
    • DialogService
    • Current Dialog Service
    • CurrentWindowService
    • Window Service
    • DocumentManagerService
    • WindowedDocumentManagerService
    • NavigationService
    • DispatcherService
    • Notification Service
    • SplashScreen Service
    • Open and Save File Dialog Services
    • Folder Browser Dialog Service
    如何使用服务
    1. 注册服务。
      • 本地注册(Service 仅在 View 中可用):调用 mvvmContext1.RegisterService 方法并将 Service 的 Create 方法之一作为参数传递,DevExpress MVVM 框架自动注册最常用的服务。
      • 全局注册(整个应用可用的Service):调用对应的静态MVVMContext.Register...Service方法。
    2. 定义一个 ViewModel 属性,该属性返回相关 Service 接口的对象(例如,如果您注册了 WindowedDocumentManagerService,您的属性应该是 IDocumentManagerService 类型)。
    3. 使用此属性访问服务并调用服务方法将命令发送到视图。

    示例

    C#

    //1. Global registration
    MVVMContext.RegisterMessageBoxService();
    //1. Local registration
    mvvmContext1.RegisterService(CreateXtraMessageBoxService());
    
    //2. POCO ViewModel property that returns a Service
    protected virtual IMessageBoxService MessageBoxService {
    get { throw new System.NotImplementedException(); }
    }
    
    //3. Send a Service command to a View
    public void SayHello() {
    MessageBoxService.Show("Hello!");
    }

    VB.NET

    '1. Global registration
    MVVMContext.RegisterMessageBoxService()
    '1. Local registration
    mvvmContext1.RegisterService(CreateXtraMessageBoxService())
    
    '2. POCO ViewModel property that returns a Service
    protected virtual IMessageBoxService MessageBoxService
    Get
    Throw New System.NotImplementedException()
    End Get
    
    '3. Send a Service command to a View
    public void SayHello()
    MessageBoxService.Show("Hello!")
    MessageBoxService

    允许您显示消息框和浮出控件。

    接口

    IMessageBoxService

    托管控件

    全局注册

    C#

    MVVMContext.RegisterMessageBoxService();
    MVVMContext.RegisterXtraMessageBoxService();
    MVVMContext.RegisterFlyoutMessageBoxService();

    VB.NET

    MVVMContext.RegisterMessageBoxService()
    MVVMContext.RegisterXtraMessageBoxService()
    MVVMContext.RegisterFlyoutMessageBoxService()

    DevExpress MVVM 框架自动调用 RegisterXtraMessageBoxService 方法。

    本地注册

    C#

    mvvmContext1.RegisterService(
    //one of "Create" methods from the list below
    );

    VB.NET

    mvvmContext1.RegisterService(
    'one of "Create" methods from the list below
    )

    Create() 方法

    • Create(DefaultMessageBoxServiceType type) - 使用 DefaultMessageBoxServiceType 枚举值来确定要创建的服务类型。
    • CreateMessageBoxService() - 创建一个使用标准 WinForms 消息框的服务。
    • CreateXtraMessageBoxService() - 创建一个使用 DevExpress XtraMessageBox 对象的服务。
    • CreateFlyoutMessageBoxService() - 创建一个使用 FlyoutDialog 对象的服务。

    所有四个方法都具有与第二个 IWin32Window 所有者参数对应的重载,此参数允许您指定拥有此服务的视图。 如果您传递 null 而不是 owner 参数,则框架会尝试找到应该是服务所有者的适当视图。 在大多数情况下,使用激活窗口。

    公共服务成员

    • ShowMessage - 显示消息框的五种扩展方法。
    • MessageBoxFormStyle - 允许您访问消息框表单并修改其外观设置。 例如,下面的代码说明了如何将粗体字体样式应用于消息框按钮。

    C#

    var msgService = MessageBoxService.CreateFlyoutMessageBoxService();
    msgService.MessageBoxFormStyle = (form) => {
    {
    FlyoutDialog msgFrm = form as FlyoutDialog;
    msgFrm.Properties.AppearanceButtons.FontStyleDelta = FontStyle.Bold;
    };

    VB.NET

    Dim msgService = MessageBoxService.CreateFlyoutMessageBoxService(Me)
    msgService.DialogFormStyle = Sub(form)
    Dim msgFrm As FlyoutDialog = TryCast(form, FlyoutDialog)
    msgFrm.Properties.AppearanceButtons.FontStyleDelta = FontStyle.Bold
    End Sub

    DevExpress WinForm | 下载试用

    DevExpress WinForm拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!


    DevExpress技术交流群5:742234706      欢迎一起进群讨论

    DevExpress线上公开课主题票选火热开启,主题由你来定!点击填写问卷

  • 相关阅读:
    正则表达式个人总结(二):正则表达式语法的深入理解第二部分
    正则表达式个人总结(一):正则表达式语法的深入理解第一部分
    JS中的函数(二):函数参数(你可能不知道的参数传递)
    字体属性设置(一):谷歌浏览器12px以下字体的显示;方法和原理
    树莓派4B刷固件卸载ROS包
    Kobuki入门
    locobot快速使用
    AX-18A固件修复失败
    locobot 软件配置
    曾经我认为C语言就是个弟弟
  • 原文地址:https://www.cnblogs.com/AABBbaby/p/15841746.html
Copyright © 2020-2023  润新知