MVVM指示灯 - 如何在其他视图模型中访问属性

Uel*_*ger 15 silverlight mvvm mvvm-light

我正在使用mvvm light来构建Silverlight应用程序.是否有代码片段显示如何从另一个视图模型或用户控件的代码中访问视图模型的属性或命令?

我想这很简单,但我不知何故错过了什么.

Ueli

Cod*_*sel 34

您可以使用Messenger执行此操作:在UserViewModel中发送用户:

Messenger.Send<User>(userInstance);
Run Code Online (Sandbox Code Playgroud)

只会将用户发送给任何感兴趣的人.

并在CardViewModel中注册收件人:

Messenger.Register<User>(this, delegate(User curUser){_curUser = curUser;});
Run Code Online (Sandbox Code Playgroud)

或者您也可以从您的CardViewModel发送请求以喊叫用户:

Messenger.Send<String, UserViewModel>("Gimme user");
Run Code Online (Sandbox Code Playgroud)

并在UserViewModel中对此做出反应:

Messenger.Register<String>(this, delegate(String msg)
{
if(msg == "Gimme user")
Messenger.Send<User>(userInstance);
});
Run Code Online (Sandbox Code Playgroud)

(你最好在实际场景中使用枚举而不是字符串:))

Perhabs你甚至可以直接回复,但我现在无法检查.

请看看这个:Mvvm light Messenger