2011-07-15 55 views
2

我一直在关注Jesse Liberty的tutorial对于Windows Phone 7的MVVM Light,但我在这个问题上陷入困境。我需要从主页面导航到详细信息页面。继本教程中,我使用的MainViewModel一个RelayCommand:在MVVM Light中使用RelayCommand导航<T>

DetailsPageCommand = new RelayCommand<Customer>((msg) => GoToDetailsPage(msg)); 

最后你实现GoToDetailsPage方法:

private object GoToDetailsPage(Customer msg) 
{ 
    System.Windows.MessageBox.Show("Go to details page with: " + 
     msg.First + 
     " " + 
     msg.Last); 
     return null; 
} 

public RelayCommand<Customer> DetailsPageCommand { get; private set;} 

然后我在构造函数初始化显示消息框有效,但我不确定如何导航到详细信息页面。在教程页面导航的前面章节与处理事情是这样的:

var msg = new GoToPageMessage {PageName = "DetailPage"}; 
Messenger.Default.Send(msg); 

回答

5

你需要注册接收类型的消息,然后导航适当。
以下内容假设页面名称,并且您将通过在查询字符串中传递它们的Id来导航到特定客户的详细信息。

Messenger.Default.Register<Customer>(
    this, 
    c => NavigationService.Navigate("/Pages/CustomerDetails.xaml?cid=" + c.Id)); 

你会然后相应地调整你的代码:

private void GoToDetailsPage(Customer msg) 
{ 
    Messenger.Default.Send(msg); 
} 

我希望这有助于。

相关问题