【问题标题】:how to update control on one view from another view in mvvm如何从 mvvm 中的另一个视图更新一个视图的控件
【发布时间】:2012-08-07 01:16:59
【问题描述】:

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

一个视图有一个按钮,第二个视图有数据网格。当按下其他视图上的按钮时,我想更新数据网格结果或绑定数据网格。我看到很少有关于使用 eventService 进行操作的帖子,但我不确定如何操作。任何人都可以给我一些例子,因为我是新手,所以不确定。提前致谢。

【问题讨论】:

    标签: mvvm dependency-injection dependencies prism


    【解决方案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;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多