如何在使用MVVM的同时在两个页面之间导航?

时间:2012-03-15 23:07:00

标签: silverlight windows-phone-7 data-binding navigation

我是MVVM的新手,无法找到如何执行以下操作:

我有MainPage.xaml和ElementOnePage.xaml

当有人双击主页面的元素时,我想显示ElementOnePage。 MainPage显示一个列表,ElementOnePage显示详细信息

我的MainPage DataContext的类型为ElementViewModel

1)我的ElementOnePage DataContext也应该是一样的吗?

2)我使用QueryString参数来传递有关已选择哪个元素的信息。

但是当我在 OnNavigatedTo(NavigationEventArgs args)函数中检索元素时,这已经太晚了。

我尝试在此方法中定义页面的DataContext,但它不起作用。

那么如何在有效使用数据绑定的同时拥有一个能够实现预期行为的页面?

1 个答案:

答案 0 :(得分:0)

我已经将MVVMLight用于我的WP7应用程序。 MVVMLight使用行为进行命令绑定。

  1. 在MainPageViewModel中创建一个RelayCommand,称之为NavigateToElementOneCommand。

  2. 在ListBox上创建EventToCommand行为,并将其绑定到NavigatToElementOneCommand。 (假设MainPageViewModel设置为MainPage的DataContext)。

  3. 在NavigateToElementCommand中,编写代码以导航到ElementOnePage.XAML。