2013-02-25 93 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 
    }); 
相關問題