reactiveui/ReactiveUI — pull request #345 by sillyotter (2013-07-13 12:03:25+00:00)
Title: ReactiveCommand can set initial CanExecute state

ReactiveCommand's should be able to set the initial CanExecute state. The currently version sets the state to true until your canExecute observable tells it otherwise. It is of course possible to forced the state to false before binding it to anything, but this removes that necessity. This is identical to a pull request that was merged into the old ReactiveCommand and ReactiveAsyncCommand back in version 4.6.2 I think.

The basic issue is that when it defaults to true, and the observable that we pull the state from doesn't immediately tell it different, the command, and hence the button bound to it, will report that it is executable. Once something in the GUI such as a load completes then the canExecute observable will announce false and disable the button, but the result is often a flickering button at start up.