WPF-表单提交有多个子控件

时间:2015-06-03 08:59:31

标签: wpf

提交具有多个usercontrols的窗口的最佳方法是什么,每个用户控件都有自己的viewmodel?

我有一个表单,其中包含多个子控件。表单本身有一个Viewmodel用于直接控件,每个用户控件都有自己的viewmodel。

用户控件的数量因用户选择而异,因此每次都不一样。

使用保存按钮一次性提交表单。

是保存点击的情况,我应该循环所有用户控件并通过读取他们的datacontext单独保存他们的视图模型?或者有更好的方法。

由于

1 个答案:

答案 0 :(得分:0)

  1. 在ParentViewModel上创建一个CompositeCommand,并将其传递给所有动态创建的子视图模型。

    public readonly CompositeCommand SaveAllCommand;

  2. //父视图模型中的某处

    childViewModel = new ChildViewModel(this.SaveAllCommand);
    
    1. 然后在每个ChildViewModels中,使用此SaveAllCommand注册然后自己的save命令

      public ChildViewModel(CompositeCommand saveAllCommand)    
      {    
      saveAllCommand.RegisterCommand(new SaveChildCommand());
      }
      
    2. 最后,当您在Parent中执行SaveAllCommand时,所有使用Command注册的childViewModel的SaveCommand也将被执行。