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(这实际上是设置服务以处理视图模型之间通信的快捷方式),你需要弄清楚如何检索实例(你仅获取命令的实例)到命令名称。例如,您可以在命令中使用标记 属性。
我用的是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(这实际上是设置服务以处理视图模型之间通信的快捷方式),你需要弄清楚如何检索实例(你仅获取命令的实例)到命令名称。例如,您可以在命令中使用标记 属性。