ViewModelBase中的DelegateCommand

时间:2017-04-15 21:09:43

标签: c# oop prism-6

我有一个ViewModelBase,如下所示:

public class ViewModelBase : BindableBase, INavigationAware, IActiveAware, IDockAware
    {
       public ViewModelBase() {SaveCommand = new DelegateCommand(OnSave, CanSave);}
        public DelegateCommand SaveCommand { get; set; }
       protected virtual void OnSave() { }

在我的班级中,我继承了ViewModelBase,如下所示:

public class FooViewVM : ViewModelBase
    {
      protected override async void OnSave() { await dto.Save(Foo); }
    }

当我按下“保存”按钮(位于不同组中的功能区中)时,该命令会执行,但代码不会运行FooViewVM,而是停在ViewModelBase中的虚拟空白处。我有点困惑,因为我认为VM中的方法会被执行(因为它会覆盖基础中的虚方法)。我是否在基类中定义了太多接口?我应该将DelegateCommand移动到每个VM而不是继承吗?最后,我想更好地理解为什么这不像我预期的那样工作。

0 个答案:

没有答案