0

MVVM アプローチ (Silverlight) を使用しているとします。

すべてのボタンをコマンドで処理しています。

特定のページに移動するためのボタンがあるとします。たとえば、グリッドで顧客を選択し、顧客の詳細ビューに移動したいとします。

このボタンを DelegateCommand で処理できますか? どのように?ViewModel からのナビゲーションを処理できますか? コード ビハインドからナビゲーションを処理する必要がありますか。

4

2 に答える 2

0

ここでは、INavigationServiceは使用できません。名前空間System.Windows.Navigation。を追加すると、エラーが発生します。

于 2012-11-05T11:25:30.590 に答える
0

どうぞ:

Xaml:

<Button Command="{Binding GoToCustomerDetailsPage}" Content="Customer Details"/>

ビューモデル:

private INavigationService _navigationService;

public ViewModel(INavigationService navigationService)
{
    _navigationService=navigationService;
}
public ICommand GoToCustomerDetailsPage
{
    get{
        return new DelegateCommand(GoToCustDetailsPage,CanGoToCustDetailsPage);
        }
}

private void GoToCustDetailsPage()
{
    _navigationService.Navigate(new Uri("/CustomerDetails", UriKind.Relative));
}

private bool CanGoToCustDetailspage()
{
   return true;//Or some sensible code that determines if this is sensible.
}

基本的に、コマンドは通常どおりボタンにバインドされます。コマンドはビューモデルのプロパティです。コマンドが実行されると、ビューモデルのプライベート メソッドが呼び出されるだけです。

于 2012-10-16T14:04:54.630 に答える