0

嗨,我的 MVVM 应用程序中有三个基于区域的视图。我是 MVVM 的新手,我想从不同的视图单击按钮来更新 DataGrid。

一个视图有一个按钮,第二个视图有数据网格。当按下其他视图上的按钮时,我想更新数据网格结果或绑定数据网格。我看到很少有关于使用 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 回答