private async void OnRemoveExecute() { var isReferenced = await _productTypeRepository.IsReferencedByProductAsync(SelectedProductType.Id); if (isReferenced) { await MessageDialogService.ShowInfoDialogAsync( $"Тип {SelectedProductType.Type} не может быть удален, т.к. связан как минимум с одним товаром"); return; } SelectedProductType.PropertyChanged -= Wrapper_PropertyChanged; _productTypeRepository.Remove(SelectedProductType.Model); ProductTypes.Remove(SelectedProductType); SelectedProductType = null; HasChanges = _productTypeRepository.HasChanges(); ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); }