有没有办法跟踪反应命令何时完成执行?

时间:2018-05-04 14:30:16

标签: c# reactiveui

是否有人知道如何跟踪反应命令已完成执行的事实并挂钩该方法,该方法将在此之后开始运行?

P.S。在命令的处理程序方法结束时调用方法的变量不适合我的情况。

提前致谢!

2 个答案:

答案 0 :(得分:7)

ReactiveCommand有一个名为IsExecuting的可观察属性,可用于观察命令执行的时间。处理这种情况的一种方法是做这样的事情:

YourCommand.IsExecuting
    .Skip(1) // IsExecuting has an initial value of false.  We can skip that first value
    .Where(isExecuting => !isExecuting) // filter until the executing state becomes false
    .Subscribe(_ => YourMethodCall()); // run your method now that the command is done

答案 1 :(得分:4)

尤金是完全正确的,但我想提一个替代选择。如果你的命令只返回一个值(就像大多数命令那样),你可以挂钩命令本身就是一个可以观察每次成功执行结果的observable:

YourCommand.Subscribe(result => YourMethodCall(result));

此处的优点是您现在可以访问YourMethodCall中的命令结果。