private void SetupDeleteMethod() { DeleteCommand = ReactiveCommand.CreateFromTask <Unit, Unit>( async dummy => { await _repository.RemoveAsync(SelectedPhone).ConfigureAwait(false); return(Unit.Default); }, this.WhenAny(vm => vm.SelectedPhone, change => change.Value != null)); DeleteCommand.ObserveOn(MainThreadScheduler).Subscribe(dummy => { Phones.Remove(SelectedPhone); }); DeleteCommand.ThrownExceptions.Subscribe(ex => { MessageBox.Show(ex.Message); }); }