Catel InterestedIn OnViewModelCommandExecuted 检查执行了哪个命令

Catel InterestedIn OnViewModelCommandExecuted check which command executed

我用的是Catel 4.3.0 framework.

我用

装饰了我的一个 ViewModel
[InterestedIn(typeof(AddSupplierWindowViewModel))]

并添加

protected override void OnViewModelCommandExecuted(IViewModel viewModel, 
                        ICatelCommand command, object commandParameter)

此事件正确触发。

AddSupplierWindowViewModel 中我有多个命令,但只有 CmdAddSupplier 是这个视图模型感兴趣的。

所以我想检查是否触发了这个命令,但我不知道如何测试它。

我希望是这样的

command.Name == "CmdAddSupplier" 

但是我找不到这样的东西。

有人可以提供一个示例来说明如何对此进行测试。

亲切的问候

杰伦

我们建议使用 CommandContainers 而不是视图模型来托管跨越 1 个以上视图模型的命令。 InterestedIn 通信可能(最有可能)在 v5 中从 Catel 中删除。

可以在 Orchestra repository 中找到一些很好的例子。

如果你真的想继续使用 InterestedIn(这实际上是设置服务以处理视图模型之间通信的快捷方式),你需要弄清楚如何检索实例(你仅获取命令的实例)到命令名称。例如,您可以在命令中使用标记 属性。