public FormatDetailViewModel(IEventAggregator eventAggregator, ILogger logger, IFormatService domainService, IFormatLookupDataService formatLookupDataService, IDialogService dialogService) : base(eventAggregator, logger, domainService, dialogService) { _formatLookupDataService = formatLookupDataService ?? throw new ArgumentNullException(nameof(formatLookupDataService)); ChangeEditedFormatCommand = new DelegateCommand <Guid?>(OnChangeEditedFormatExecute); SaveItemCommand = new DelegateCommand(SaveItemExecute, base.SaveItemCanExecute) .ObservesProperty(() => SelectedItem.Name); SelectedItem = CreateWrapper(domainService.CreateItem()); Formats = new ObservableCollection <LookupItem>(); UserMode = (!UserMode.Item1, DetailViewState.EditMode, Brushes.LightGray, !UserMode.Item4).ToTuple(); }