Mvvm Light 框架下的消息传递
1、Messenger.Default.Send<string>("Messenger");
原型:Public virtual void Send<TMessage>(TMssage message);
摘要:将消息发送到注册者。该消息将达到所有收件人,注册这个消息类型使用的注册方法。
类型参数:消息将发送的类型。
参数:消息发送到注册者
2、public Class MyClass{}
Messenger.Default.Send<string,MyClass>("Messenger");
原型:Public virtual void Send<TMessage, TTarget>(TMessage message);
摘要:将消息发送到注册者。该消息只会到达(注册这个消息类型使用的注册方法并且使用相同的目标类型)。
参数类型:消息将发送的类型。
收件人将收到的消息的类型。该消息将不会被发送到另一个类型的收件人。
参数:消息将发送的类型。
3、Messenger.Default.Send<string>("Messenger", "ChildPage1ViewModel");
原型:Public virtual void Send<TMessage>(TMessage message,object token);
摘要:将消息发送到注册者。该消息只会到达(注册这个消息类型使用的注册方法并且使用相同的目标类型)。
参数类型:消息将发送的类型。
参数:消息将发送的类型。
一个通信通道的标志,如果收件人使用了这个标志,那么发件人也要使用相同的标志。然后这个消息将会被
发送到收件人。注册时没有使用这个标志的人或使用不同标志的收件人不会收到这条消息。同样,消息发送
没有带有标志、或不同的标志,将不会发送到收件人。
1、Messenger.Default.Register<string>(this,
m =>
{
//MainPageMessenger = m.ToString();
});
原型:public virtual void Register<TMessage>(object recipient, Action<TMessage> action);
摘要:发寄存器中将保存一条Tmessage类型的消息,当收到消息时,Action委托将执行相应的动作,注册一个收
注册一个收件人不能使用一个强引用。因为如果这个收件人被删除了,不会引发内存泄露。
Registers a recipient for a type of message TMessage. The action parameter will be executed when a corresponding message is sent.Registering a recipient does not create a hard reference to it, so if this recipient is deleted, no memory leak is caused.
类型参数:消息的收件人登记类型。
参数:收件人将收到的消息。
消息发送时,执行的动作
2、Messenger.Default.Register<string>(this, "ChildPage1ViewModel",
m =>
{
MainPageMessenger = m.ToString();
});
原型:public virtual void Register<TMessage>(object recipient, object token, Action<TMessage> action);
摘要:发寄存器中将保存一条Tmessage类型的消息,当收到消息时,Action委托将执行相应的动作,注册一个收
注册一个收件人不能使用一个强引用。因为如果这个收件人被删除了,不会引发内存泄露。
Registers a recipient for a type of message TMessage. The action parameter will be executed when a corresponding message is sent.Registering a recipient does not create a hard reference to it, so if this recipient is deleted, no memory leak is caused.
类型参数:消息的收件人登记类型。
参数:收件人将收到的消息。
一个通信通道的标志,如果收件人使用了这个标志,那么发件人也要使用相同的标志。然后这个消息将会被
发送到收件人。注册时没有使用这个标志的人或使用不同标志的收件人不会收到这条消息。同样,消息发送
没有带有标志、或不同的标志,将不会发送到收件人。
消息发送时,执行的动作
3、Messenger.Default.Register<string>(this, false,
m =>
{
MainPageMessenger = m.ToString();
});
原型:public virtual void Register<TMessage>(object recipient, bool receiveDerivedMessagesToo, Action<TMessage> action);
摘要:发寄存器中将保存一条Tmessage类型的消息,当收到消息时,Action委托将执行相应的动作,看到receiveDerivedMessagesToo这个参数描述从TMessage得到消息(或者,如何TMessage是一个接口,messages实现TMessage)注册一个收注册一个收件人不能使用一个强引用。因为如果这个收件人被删除了,不会引发内存泄露。
Registers a recipient for a type of message TMessage. The action parameter will be executed when a corresponding message is sent.Registering a recipient does not create a hard reference to it, so if this recipient is deleted, no memory leak is caused.
类型参数:消息的收件人登记类型。
参数:收件人将收到的消息。
如果true,消息类型从TMessage将会传递到收件人,例如,如果一个SendOrderMessage和一个ExecuteOrderMessage来自OrderMessage,为OrderMessage注册和设置receiveDerivedMessagesToo为true将会发送SendOrderMessage和ExecuteOrderMessage给收件人。同时,如果TMessage是一个接口,message类型实现了TMessage也将会传递给收件人。例如,如果SendOrderMessage和一个ExcuteOrderMessage实现了IOrderMessage接口,为IOrderMessage注册和设置receiveDerivedMessagesToo为true将会发送SendOrderMessage和ExecuteOrderMessage给那个注册了的收件人。
消息发送时,执行的动作
4、Messenger.Default.Register<string>(this, "ChildPage1ViewModel", true,
m =>
{
MainPageMessenger = m.ToString();
});
原型:public virtual void Register<TMessage>(object recipient, object token, bool receiveDerivedMessagesToo, Action<TMessage> action);
摘要:发寄存器中将保存一条Tmessage类型的消息,当收到消息时,Action委托将执行相应的动作,看到receiveDerivedMessagesToo这个参数描述从TMessage得到消息(或者,如何TMessage是一个接口,messages实现TMessage)注册一个收注册一个收件人不能使用一个强引用。因为如果这个收件人被删除了,不会引发内存泄露。
Registers a recipient for a type of message TMessage. The action parameter will be executed when a corresponding message is sent.Registering a recipient does not create a hard reference to it, so if this recipient is deleted, no memory leak is caused.
类型参数:消息的收件人登记类型。
参数:收件人将收到的消息。
一个通信通道的标志,如果收件人使用了这个标志,那么发件人也要使用相同的标志。然后这个消息将会被发送到收件人。注册时没有使用这个标志的人或使用不同标志的收件人不会收到这条消息。同样,消息发送没有带有标志、或不同的标志,将不会发送到收件人。
如果true,消息类型从TMessage将会传递到收件人,例如,如果一个SendOrderMessage和一个ExecuteOrderMessage来自OrderMessage,为OrderMessage注册和设置receiveDerivedMessagesToo为true将会发送SendOrderMessage和ExecuteOrderMessage给收件人。同时,如果TMessage是一个接口,message类型实现了TMessage也将会传递给收件人。例如,如果SendOrderMessage和一个ExcuteOrderMessage实现了IOrderMessage接口,为IOrderMessage注册和设置receiveDerivedMessagesToo为true将会发送SendOrderMessage和ExecuteOrderMessage给那个注册了的收件人。
消息发送时,执行的动作