如何根据另一个命令的结果有条件地执行一个命令?

How to execute one command conditionally based on the result of another?

我在 ReactiveUI 中组合了两个命令:CheckNetwork 和 CheckVersion。任何时候 CheckNetwork 执行(并且它在正确的时间执行)我都想执行 CheckVersion - 但前提是 CheckNetwork 返回 "true"。

ReactiveCommand<Unit, bool> CheckNetwork { get; }
ReactiveCommand<Unit, Unit> CheckVersion { get; }

CheckVersion = ReactiveCommand.CreateFromTask(CheckVersionImpl);
CheckNetwork = ReactiveCommand.CreateFromTask(CheckNetworkImpl);

我已经尝试了很多东西,所以不会全部检查,只是似乎无法让任何东西工作...

这应该可以满足您的需求

CheckNetwork
.Where(result => result)
.Select(_=> Unit.Default)
.InvokeCommand(CheckVersion);