我正在尝试执行一个命令,以便我在视图的构造函数中异步运行的函数。我知道在构造函数中异步运行某些东西并不一定是好的实践,但是当视图打开时,我需要加载一个datagrid,这需要3-5秒的时间,所以我想我可以加载一个带有IsLoading属性的进度条,而获取数据的命令则在一个单独的线程上运行。
以下是执行上述操作的命令/属性声明:

public ReactiveCommand EnterCmd { get; private set; }
ObservableAsPropertyHelper<bool> _isLoading;
public bool IsLoading => _isLoading.Value;

下面是我在构造函数中的实例化:
EnterCmd = ReactiveCommand.CreateFromTask(LoadGridData);
EnterCmd.IsExecuting.ToProperty(this, x => x.IsLoading, out _isLoading);

我想通过执行类似于EnterCmd.Execute()的操作来运行start my command。
值得注意的是,我确实发现了一个类似的问题here,但是Execute()似乎不再是ReactiveCommand上的有效方法。任何想法都会很感激的。

最佳答案

除了jon的回答,您还需要确保访问的是ReactiveCommand<TParam, TResult>,而不仅仅是ReactiveCommand(这是一个没有执行概念的基类)。
因此,请确保EnterCmd属性的类型正确,例如ReactiveCommand<Unit, Unit>

09-05 03:24