将Parm从App.xaml传递到ViewModel - Silverlight MVVM

时间:2013-02-25 05:39:08

标签: silverlight mvvm

我有一个驻留在App.xaml.cs中的字符串UserName,我需要将其带到ViewModel来填充控件。实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您最常使用控制资源来访问ViewModel实例。 然后通过ViewModel中定义的公共方法,您可以将参数传递给它。

((ViewModel1)this.Resources["ViewModel1"]).Test(p);

Test是ViewModel中接收参数的公共方法。

答案 1 :(得分:0)

您可以发送包含该值的消息(例如MvvmLight Messenger类),ViewModel将注册接收它。

在App.xaml.cs中:

Messenger.Default.Send<string>(Username);

在ViewModel的构造函数中:

Messenger.Default.Register<string>(this, m => 
    {
        this.Username = m; // or whatever you need to do with the value
    });