当前位置: 首页 > news >正文

WPF实战学习笔记27-全局通知

新建消息事件

添加文件:Mytodo.Common.Events.MessageModel.cs

using Prism.Events;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Diagnostics;namespace Mytodo.Common.Events
{public class MessageModel{public string Filter { get; set; }public string Message { get; set; }}public class MessageEvent:PubSubEvent<MessageModel>{}
}

注册、发送提示消息

/// <summary>
/// 注册提示消息 
/// </summary>
/// <param name="aggregator"></param>
/// <param name="action"></param>
public static void ResgiterMessage(this IEventAggregator aggregator,Action<MessageModel> action, string filterName = "Main")
{aggregator.GetEvent<MessageEvent>().Subscribe(action,ThreadOption.PublisherThread, true, (m) =>{return m.Filter.Equals(filterName);});
}/// <summary>
/// 发送提示消息
/// </summary>
/// <param name="aggregator"></param>
/// <param name="message"></param>
public static void SendMessage(this IEventAggregator aggregator, string message, string filterName = "Main")
{aggregator.GetEvent<MessageEvent>().Publish(new MessageModel(){Filter = filterName,Message = message,});
}

UI增加Snackbar

修改文件:Mytodo.Views.MainView.xaml

</materialDesign:DrawerHost.LeftDrawerContent>
<Grid><Grid.RowDefinitions><RowDefinition Height="auto" /><RowDefinition /></Grid.RowDefinitions><materialDesign:Snackbarx:Name="skbar"Panel.ZIndex="1"MessageQueue="{materialDesign:MessageQueue}" /><materialDesign:ColorZone

注册消息

修改文件:Mytodo.Views.MainViewcs 构造函数添加

要注意的是,我们要发送的是文本,所以,this.skbar.MessageQueue.Enqueue函数内发送的是文本。

aggregator.ResgiterMessage(arg =>{this.skbar.MessageQueue.Enqueue(arg.Message);});

在需要的地方推送消息

aggregator.SendMessage("已完成!");
http://www.lryc.cn/news/105389.html

相关文章:

  • openSUSE安装虚拟化 qemu kvm
  • 基于linux下的高并发服务器开发(第四章)- 多进程实现并发服务器(回射服务器)
  • 【程序分析】符号执行
  • 实验笔记之——Windows下的Android环境开发搭建
  • #rust taur运行报错#
  • 学习购药系统源码:从前端到后端的技术探索
  • 第九次CCF计算机软件认证
  • 【计算机网络】传输层协议 -- TCP协议
  • Mac上命令
  • 软件安全测试和渗透测试的区别在哪?安全测试报告有什么作用?
  • Android 从LibVLC-android到自编译ijkplayer播放H265 RTSP
  • 如何提升等保水平,减少数据泄露率
  • 蓝桥云课ROS机器人旧版实验报告-07外设
  • sql入门基础-2
  • uni-app:实现表格多选及数据获取
  • 【图论】树上差分(点差分)
  • 【wrk2】轻量级性能测试工具
  • 华为云低代码平台Astro Canvas 搭建汽车展示大屏——实验指导手册
  • Nodejs 第七章(发布npm包)
  • Spring?Boot项目如何优雅实现Excel导入与导出功能
  • lable 某个名称换行 \n /n /br axisLabel换行 文字换行 echarts
  • 025 - max()函数
  • JDK 8.x 微服务启动JVM参数调优实战
  • Web与HTTP
  • 算法刷题Day 56两个字符串的删除操作+编辑距离
  • Flutter中Dart语言常用知识
  • 11万多英藏对照词典英藏翻译ACCESS\EXCEL数据库
  • 浅谈C语言分支循环语句
  • Spring Boot Starter 剖析与实践 | 京东云技术团队
  • 技术能力提升-《系统架构设计师教程》