public GenreDetailViewModel(IEventAggregator eventAggregator, ILogger logger, IGenreService domainService, IGenreLookupDataService genreLookupDataService, IDialogService dialogService) : base(eventAggregator, logger, domainService, dialogService) { _genreLookupDataService = genreLookupDataService ?? throw new ArgumentNullException(nameof(genreLookupDataService)); ChangeEditedGenreCommand = new DelegateCommand <Guid?>(OnChangeEditedGenreExecute); SaveItemCommand = new DelegateCommand(SaveItemExecute, base.SaveItemCanExecute) .ObservesProperty(() => SelectedItem.Name); SelectedItem = CreateWrapper(domainService.CreateItem()); Genres = new ObservableCollection <LookupItem>(); UserMode = (!UserMode.Item1, DetailViewState.EditMode, Brushes.LightGray, !UserMode.Item4).ToTuple(); }