2011-07-15 9 views
2

私はMV800 Light for Windows Phone 7でJesse Libertyのtutorialに従っていますが、この問題は解決していません。メインページから詳細ページに移動する必要があります。チュートリアルの後、私はMainViewModelでRelayCommandを使用しています:MVVM LightのRelayCommand <T>を使用したナビゲーション

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

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

最後にあなたがGoToDetailsPageメソッドを実装します。

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); 
} 

私はこのことができます願っています。

関連する問題