Catel感兴趣的OnViewModelCommandExecuted检查执行了哪个命令

时间:2016-10-14 08:52:31

标签: c# catel

我使用Catel 4.3.0 framework

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

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

此事件正确触发。

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

所以我想检查这个命令是否被触发,但我无法弄清楚如何测试它。

我希望command.Name == "CmdAddSupplier"之类的东西,但我找不到这样的东西。

有人可以举例说明如何测试。

亲切的问候

的Jeroen

1 个答案:

答案 0 :(得分:0)

我们建议使用CommandContainers而不是视图模型来托管跨越多个视图模型的命令。感兴趣的通信可能(很可能)将在第5版中从Catel中删除。

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

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