2013-02-25 225 views
0

我有一个字符串UserName驻留在App.xaml.cs中,我需要将它带入ViewModel以填充控件。达到此目的的最佳方法是什么?将Parm从App.xaml传递给ViewModel - Silverlight MVVM

+0

它是如何居住在App.xaml.cs? – 2013-02-25 06:08:02

+0

我将它作为传递给Application_Startup。作为e.InitParams来通过。我想坚持这个用户到VM – Colbs 2013-02-26 01:16:00

回答

1

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

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

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

+0

这工作表示感谢。但是,当我的配对视图实例化ViewModel时,我失去了价值 – Colbs 2013-02-26 01:30:21

0

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

在App.xaml.cs:

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

在视图模型的构造:

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