public ConfirmationPanelControllerVm() { DiscardActionCommand = NoggogCommand.CreateFromObjectz( objectSource: this.WhenAnyValue(x => x.TargetConfirmation), canExecute: target => { if (target == null) { return(Observable.Return(false)); } if (target.DiscardActionCommand == null) { return(Observable.Return(true)); } return(target.DiscardActionCommand.CanExecute); }, execute: x => { (x?.DiscardActionCommand as ICommand)?.Execute(Unit.Default); TargetConfirmation = null; }, disposable: this); ConfirmActionCommand = NoggogCommand.CreateFromObjectz( objectSource: this.WhenAnyValue(x => x.TargetConfirmation), canExecute: target => { if (target == null) { return(Observable.Return(false)); } return(target.ConfirmActionCommand.CanExecute); }, execute: x => { (x?.ConfirmActionCommand as ICommand)?.Execute(Unit.Default); TargetConfirmation = null; }, disposable: this); }