如何更改视图并触发视图模型中的逻辑一次单击?

时间:2015-09-18 12:43:15

标签: c# .net wpf mvvm .net-4.0

为了澄清我的问题,我想描述一下我的申请:

查看:

  • ApplicationView
  • 的MainView
  • EditEmployeeView

及其查看模型

  • VMApplication
  • VMMain
  • VMEditEmployee

我已经学会了如何通过MVVM模式中的Button of Button来更改视图

用于将视图从EditEmployeeView更改为MainView的VMApplication代码:

private ICommand saveEditingEmployeeCommand;
public ICommand SaveEditingEmployeeCommand
{
    get
    {
      if (saveEditingEmployeeCommand == null)
      {
         saveEditingEmployee = new RelayCommand(
            p => SaveEditingView());
      }

         return saveEditingViewCommand; ;
      }
    }
public void SaveEditingView()
{
   CurrentPageViewModel = PageViewModels[0];
}

它完美运行 - 视图从EditEmployeeView更改为MainView,但是代码只是更改视图而不是触发位于VMEditEmployee的保存员工(SaveEmplMethod())的逻辑:

private ICommand saveEmplCommand;
public ICommand SaveEmplCommand
{
   get
   {
      if (saveEmplCommand == null)
      {
        saveEmplCommand = new RelayCommand(
                    p => SaveEmplMethod());
      }
        return saveEmplCommand;
    }
}
private void SaveEmplMethod()
{
  using (EmplEntities db=new EmplEntities())
  {
    var currentEmpl = db.Employees.First(q=>q.Empl==selectedEmpl);                
    currentEmpl.Name="Bob";
    db.SaveChanges();                
   }
 }

我的问题是如何保存已修改的员工并将视图更改为主视图?我的方法是否合适? 任何例子和建议将不胜感激!

0 个答案:

没有答案