Catel interstedin OnViewModelCommandExecuted检查执行的命令

本文关键字:命令 执行 检查 interstedin OnViewModelCommandExecuted Catel | 更新日期: 2023-09-27 18:12:59

我使用Catel 4.3.0 framework .

我已经用

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

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

此事件正确触发。

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

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

我希望是

command.Name == "CmdAddSupplier" 

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

谁能提供一个例子,如何测试这个

亲切的问候

珀斯

Catel interstedin OnViewModelCommandExecuted检查执行的命令

我们建议使用CommandContainers而不是视图模型来承载跨越多个视图模型的命令。在v5中很可能(很有可能)从Catel中删除interdin通信。

可以在Orchestra存储库中找到一些很好的例子。

如果您真的想继续使用interstedin(它实际上是设置服务以处理视图模型之间通信的快捷方式),则需要弄清楚如何将实例(您只获得命令的实例)检索到命令名。例如,您可以在命令中使用Tag属性。