如何在MVVM中的windows store app中传递参数?

时间:2013-05-13 12:39:00

标签: c# mvvm navigation windows-store-apps

我从c#和windows 8应用程序开始。答案必须非常简单,但我不能这样做。

我在MVVM Light Model工作。

我的代码在page1.xaml.cs中:

        private void ResultsGridView_OnItemClick(object sender, ItemClickEventArgs e)
    {
        this.Frame.Navigate(typeof(MainPage), "test");
    }

但我不能像example中那样覆盖我的功能:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    string name = e.Parameter as string;

if (!string.IsNullOrWhiteSpace(name))
{
    tb1.Text = "Hello, " + name;
}
}

因为它在我的MainViewModel.cs中,而不是我的MainPage.xaml.cs。

那么,你知道一种在这2帧之间传递参数的方法吗?

感谢您的帮助(并原谅我的英语)。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

我使用Messenger,这是我的page1.xaml.cs:

        private void ResultsGridView_OnItemClick(object sender, ItemClickEventArgs e)
    {
        selectAgence = selectAgences.Last();
        Messenger.Default.Send<Agence>(selectAgence, "1");

        this.Frame.Navigate(typeof(MainPage));
    }

这是我的MainViewModel:

            Messenger.Default.Register<Agence>(this, "1", agence => { SelectAgence = agence; });

我希望这能帮助一些人。