2012-03-15 97 views
0

我是新来MVVM并不能找到如何做到以下几点:如何在使用MVVM时在两页之间导航?

我有MainPage.xaml中和ElementOnePage.xaml

当有人双击主界面的元素,我想显示ElementOnePage。 显示的MainPage名单,ElementOnePage显示详细

我的DataContext的MainPage是类型ElementViewModel

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

2)我正在使用QueryString参数来传递有关哪个元素被选中的信息。

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

我试着在这个方法中定义页面的DataContext,但它没有工作。

那么我怎么能有一个页面,执行预期的行为,同时使用有效的数据绑定?

+0

为什么OnNavigatedTo“太晚了”? – 2012-03-16 19:16:21

+0

我不知道。我只是在我把代码放在这里时,没有完成数据绑定。 – alexandrekow 2012-03-16 21:17:21

回答

0

我为我的WP7应用程序使用了MVVMLight。 MVVMLight使用行为进行命令绑定。

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

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

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