2

私はWPFが初めてで、正しい方法で物事を行おうとする精神で、アプリケーションにMVVMを実装しようとしました。Josh Smith の頻繁に言及されている記事を利用しましたが、自分がどれほど知識が乏しいかということに気づかされただけでなく、少し困惑しました。

具体的には、RelayCommand オブジェクトを使用してページ上のボタンを直接処理するページがあり、これで問題ありません。ただし、ボタン (保存) は、最終的には他のボタンも含むユーザー コントロール上にあり、そのコントロールは多くのページで使用されます。

私の質問はこれです。コマンドをユーザー コントロールからそれを含むページ (ビューモデル) に中継するにはどうすればよいですか? コマンドにバインドすると

public ICommand SaveCommand
{
  get
  {
    if (_saveCommand == null)
    {
      _saveCommand = new RelayCommand(
          param => this.Save(),
          param => this.CanSave
          );
    }
    return _saveCommand;
  }
}

ユーザー コントロールでは、実際にはビューモデルで処理する必要がある場合に、ユーザー コントロール自体で Save メソッドを使用する必要があります。

誰でも助けることができますか?

4

2 に答える 2

0

では、親の(ページ) DataContext (ビューモデル) にバインドする必要がありますか? RelativeSource を使用して SaveCommand にバインドしてみてください: http://msdn.microsoft.com/en-us/library/ms743599.aspx

于 2010-04-06T23:24:54.287 に答える
0
于 2010-04-07T03:20:11.537 に答える