提交具有多个usercontrols的窗口的最佳方法是什么,每个用户控件都有自己的viewmodel?
我有一个表单,其中包含多个子控件。表单本身有一个Viewmodel用于直接控件,每个用户控件都有自己的viewmodel。
用户控件的数量因用户选择而异,因此每次都不一样。
使用保存按钮一次性提交表单。
是保存点击的情况,我应该循环所有用户控件并通过读取他们的datacontext单独保存他们的视图模型?或者有更好的方法。
由于
答案 0 :(得分:0)
在ParentViewModel上创建一个CompositeCommand,并将其传递给所有动态创建的子视图模型。
public readonly CompositeCommand SaveAllCommand;
//父视图模型中的某处
childViewModel = new ChildViewModel(this.SaveAllCommand);
然后在每个ChildViewModels中,使用此SaveAllCommand注册然后自己的save命令
public ChildViewModel(CompositeCommand saveAllCommand)
{
saveAllCommand.RegisterCommand(new SaveChildCommand());
}
最后,当您在Parent中执行SaveAllCommand时,所有使用Command注册的childViewModel的SaveCommand也将被执行。