WPF应用程序发送参数(带页面导航的MvvmLight)

时间:2013-06-14 11:31:30

标签: c# wpf mvvm-light params messenger

我有一个带页面导航的WPF应用程序。我使用MvvmLight工具包。我有两个页面:FirstPage(默认页面)和SecondPage。在FirstPage我导航到SecondPage

我想将参数传递给SecondPage

//code on FirstPage
NavigationService.NavigateTo(new Uri("SecondPage.xaml", UriKind.Relative));
Messenger.Default.Send<string>("my mess");

//code on SecondPage
//constructor
public SecondPage()
{
  Messenger.Default.Register<string>(this, GetMess);
}

private void GetMess(string obj)
{

}

当你第一次开始时它不起作用。我可以创建SecondPage的实例,

PageSecond page = new  PageSecond();

但它并不美丽。请帮帮我。

1 个答案:

答案 0 :(得分:0)

你没有在代码隐藏中使用这样的代码遵循MVVM原则。所以在你开始之后是一个简单的(非MVVM)方式回答这个问题:

FirstPage上的代码 -

        Page secondPage = new SecondPage("Hello");
        NavigationService.Navigate(secondPage);

SecondPage上的代码

    // Public parameterless constructor - needed for designer
    public SecondPage()
    {
        InitializeComponent();
    }

    // Constructor with parameter 
    public SecondPage(string parameter)
    {
        InitializeComponent();
        MyTextBox.Text = parameter;
    }