0

こんにちは私はMVVMアプリケーションに3つのリージョンベースのビューがあります。私はMVVMを初めて使用し、別のビューからボタンをクリックしてDataGridを更新したいと思います。

1つのビューには1つのボタンがあり、2番目のビューにはデータグリッドがあります。他のビューのボタンが押されたときに、データグリッドの結果を更新するか、データグリッドをバインドしたいのですが。eventServiceでそれを行うことについての投稿はほとんど見られませんでしたが、方法がわかりません。私は新しいので、わからないので、誰かが私にいくつかの例を教えてくれます。前もって感謝します。

4

1 に答える 1

1

簡単な解決策は、両方のビューで同じ ViewModel を使用することです。

ビューモデル:

public class MyModel : ViewModel
{
  static myModel;
  public static MyModel Current { get { if(myModel==null) myModel=new MyModel(); return myModel; } }

  public IEnumerable<T> Data { get { ... } set { /* Notification */ }}
  public ICommand SetData {get { return new DelegateCommand(()=>Data= /* return the data */); }
}

ボタン表示:

<Button Command={Binding SetData} />

データグリッド ビュー:

<DataGrid ItemsSource={Binding Data} />

両方のビューのコード ビハインドで、コンストラクターに追加します: this.DataContext = MyModel.Current;

于 2012-08-07T12:17:20.490 に答える