如何让Reactive命令观察它们自己的IsExecuting observable

时间:2014-04-27 11:41:47

标签: c# mvvm system.reactive reactiveui

我的ViewModel中有几个命令,我希望将每个按钮的CanExecute绑定到一个可观察的busy,这个busy被定义为当前没有任何按钮正在执行。

以下是我提出的内容,但显然它遇到了NullReferenceException。

busy = Observable.CombineLatest(this.PlayCommand.IsExecuting, this.PauseCommand.IsExecuting, (play, pause) => play && pause);

this.PauseCommand = new ReactiveCommand(busy.Select(b => !b));
this.PlayCommand = new ReactiveCommand(busy.Select(b=> !b));

ReactiveCommand上的CanExecuteObservable属性也是只读的,所以在初始化命令之前我需要定义一个IObservable。

关于如何解决鸡肉和鸡蛋问题的任何想法?观察ViewModel(或ViewModel集合)的繁忙状态的更好方法也将受到赞赏: - )

0 个答案:

没有答案