您好我的MVVM应用程序中有三个基于区域的视图。我是MVVM的新手,我想从不同视图点击按钮更新DataGrid。
一个视图有一个按钮,第二个视图有datagrid。我想在按下其他视图上的按钮时更新datagrid结果或绑定datagrid。我在使用eventService时看到的帖子很少,但我不确定如何。任何人都可以给我一些例子,因为我是新人所以不确定。提前谢谢。
答案 0 :(得分: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视图:
<DataGrid ItemsSource={Binding Data} />
在两个视图的代码隐藏中,添加到构造函数: this.DataContext = MyModel.Current;