1、 View可以通过DataContext访问ViewModel
除了Binding以外,在一些Event触发的时候,在behind code里用这种方法,直接访问ViewModel。
2、绑定:
1、在控件/窗体的资源中进行绑定
<Window.DataContext>
<viewModel:MyViewModel/>
</Window.DataContext>
2、在UI的构造函数中绑定:
Window.DataContext = new MyViewModel();
3、ViewModel和ViewModel之间通过Messenger类进行消息传递
Messager类的主要交互模式就是信息接受和发送(可以理解为“发布消息服务”和“订阅消息服务”),是不是想到观察者模式了,哈哈哈。
MVVM Light Messenger 旨在通过简单的设计模式来精简此场景:任何对象都可以是接收端;任何对象都可以是发送端;任何对象都可以是消息。
4、View和ViewModel之间的消息交互
在View和ViewModel中进行消息器注册,相当于订阅服务。包含消息标志、消息参数和消息执行方法。如下:
消息标志token:ViewAlert,用于标识只阅读某个或者某些Sender发送的消息,并执行相应的处理,所以Sender那边的token要保持一致
执行方法Action:ShowReceiveInfo,用来执行接收到消息后的后续工作,注意这边是支持泛型能力的,所以传递参数很方便。
这里是引用