首页 > 其他分享 >借助Messenger实现ViewModel间通信(communitytoolkit-mvvm)

借助Messenger实现ViewModel间通信(communitytoolkit-mvvm)

时间:2024-04-16 16:35:53浏览次数:18  
标签:communitytoolkit mvvm Default WeakReferenceMessenger 间通信 MainViewModel TestViewM

两个VM:MainViewModel,TestViewModel

需求:TestViewModel中发消息到MainViewModel处理

写法1:

  1.MainViewModel中注册消息处理函数WeakReferenceMessenger.Default.Register<string, string>(this, "AddItem", DoMessage)

  2.参数2用于校验,参数3为消息处理函数

  3.TestViewModel中使用WeakReferenceMessenger.Default.Send("aaa")发消息

写法2:

  1.MainViewModel继承ObservableRecipient,IRecipient<string>

  2.实现IRecipient<string>,表示处理所有WeakReferenceMessenger.Default.Send("aaa")发送的string类型的消息

  3.设置this.IsActive=true,这个属性继承自ObservableRecipient

标签:communitytoolkit,mvvm,Default,WeakReferenceMessenger,间通信,MainViewModel,TestViewM
From: https://www.cnblogs.com/celestially98/p/18137668

相关文章

  • wpf datagrid,menuitem, style, export ,show in a another window,mvvm
    //xaml<Windowx:Class="WpfApp58.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mic......
  • 进程间通信(管道)
    进程间通信(管道)一、关于创建管道的类(1)创建管道的类Pipe([duplex])在进程之间创建一条管道,并返回元组(conn1,conn2),其中conn1,conn2表示管道两端的连接对象强调一点:必须在产生Process对象之前产生管道duplex默认管道是全双工的,如果将duplex射成False,conn1只能用于接收,conn2......
  • 进程间通信(队列和生产者消费者模型)
    进程间通信(队列和生产者消费者模型)一、关于进程间通信[1]什么是进程间通信(Inter-ProcessCommunication,IPC)进程间通信(Inter-ProcessCommunication,IPC)是指两个或多个进程之间进行信息交换的过程。它是一种计算机编程技术,用于在不同进程之间共享数据和资源。[2]如何实......
  • WPF datagrid mvvm multi select via customize datagrid
    usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;namespaceWpfApp39{publicclassMultiSelectDataGrid:D......
  • 在RichTextBox mvvm中使用wpf工具包在插入符号处插入文本
    ,可以通过以下步骤实现:首先,确保你已经在项目中引用了WPF工具包。可以通过在VisualStudio中的项目引用中添加对WPF工具包的引用来完成。在你的MVVM模式中,创建一个名为"InsertTextCommand"的命令类,用于处理插入文本的逻辑。这个命令类应该实现ICommand接口,并且包含一个Execute方......
  • mvvm
    classVue{constructor(options){/*视图的驱动*/this.$el=options.elthis._data=options.datathis.$options=optionsthis.$watchEvent={}console.log(document.querySelector(this.$el),this._data,this......
  • 进程间通信(4)-信号量
    Linux中的信号量通常指的是进程间通信(IPC)中的一种机制,用于实现进程之间的同步和互斥。在Linux中,主要有两种类型的信号量:SystemV信号量和POSIX信号量。1.SystemV信号量SystemV信号量是最早引入Linux的一种进程间通信机制,它使用semget、semctl和semop等函数进行......
  • 线程间通信之wait和notify
    synchronized解释:java语言的一个关键字作用:实现同步机制,控制多线程的访问,确保同一时刻只有一个线程可以进入临界区执行同步代码。用法:加在代码块上、加在方法上、加在一个对象,原理:不管是那种用法,都会有一个对象(指定的对象、class的实例对象、class对象),这个对象又会一一对应一......
  • C#中的MVVM
    MVVM(Model-View-ViewModel)是一种设计模式,通常与WPF(WindowsPresentationFoundation)和Xamarin等框架结合使用,用于构建基于XAML的应用程序。MVVM是MVC模式的衍生,旨在进一步分离应用程序的逻辑和界面。以下是MVVM的知识点以及可能会在面试中被问到的一些问题和答案:MVVM的......
  • Linux之进程间通信
    1.进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(......