Catel 多次编辑主从视图

Catel Edit Master-Detail View multiple times

我正在尝试在 Catel 中多次编辑 Master-Detail View

我的问题 是,如果在 catel 中没有使用 SaveViewModelAsync 和 [=11= 来处理主从视图和多个版本的通用方法] 方法?

当我的 Master-ListItem 不是具有自己的 ViewModel 的 UserControl 并且当我在保存或取消后更改选定的 Master-ListItem 以便创建新的 ViewModel 时,工作流有效。但我不想在 save/cancel 之后取消或更改选择。另外,我可能要为 Master-ListItems 创建一个 UserControl + ViewModel。

题目限制条件:

我从 Geert van Horrik 的 讨论中得到了信息,

问题:

我只能使用 SaveViewModelAsyncCancelViewModelAsync 一次。之后,还活着的 ViewModels

重现代码:

我创建了一个 WPF Project,我在其中测试了所有内容。

可能的解决方案:

解的限制:

我的结论:

看来,我必须实例化所有这些 ViweModels 并独自处理这个工作流。 ViewModelLifetimeManagement.PartlyManualCloseViewModelOnUnloaded 已过时)似乎在这里不起作用。选择更改时,总是会创建一个新的 ViewModel,旧的可能不会关闭。

我不想滥用框架。也许我错过了什么。我希望有人能帮助我或给我提示,如何处理这个问题。

Catel 在视图模型卸载后立即调用保存/取消。如果您想在不更改数据模型的情况下进行“中间”保存,您可以:

  1. 保存将保存脏模型的主列表(您可以直接从您的虚拟机中修改模型)
  2. 创建自定义命令 (SaveData),您可以通过显式按钮(或输入手势绑定)运行 来保存数据,而无需在虚拟机上调用 SaveAsync

之后,我目前结束了,不使用SaveViewModelAsyncCancelViewModelAsync方法并处理保存和我自己取消,这样通知就不会中断。我在 ViewModelBaseEditableObjectHelper.CancelEditObject(Model);

上使用 GetChildViewModels() 方法