public ToDoTaskDetailViewModel(Cache cache, TasksProxy proxy, IMapper mapper) { this.cache = cache; this.proxy = proxy; this.mapper = mapper; var titleObs = this.WhenAnyValue(x => x.Dvo.Name) .Select(x => $"Task '{x}'") .ObserveOn(RxApp.MainThreadScheduler); _Title = titleObs.ToProperty(this, x => x.Title, "Loading ..."); _Header = titleObs.ToProperty(this, x => x.Header, "Loading ..."); RenameCommand = ReactiveCommand.CreateFromTask(async() => { var newName = await RenameInteraction.Handle(Dvo.Name); if (!string.IsNullOrWhiteSpace(newName)) { await proxy.RenameToDoTask(Dvo.Id, newName); Dvo.Name = newName; } }); }