public DishesManagerViewModel(IWindowFactory windowFactory, IWindowController windowController, IDataManager dataManager) : base(windowFactory, windowController) { dishes = new ObservableCollection <DishViewModel>(); this.dataManager = dataManager; LoadDishesList(); add = new RelayCommand(_ => { windowFactory.CreateDishInfoEditorWindow(new Dish(), false); LoadDishesList(); }); edit = new RelayCommand(_ => { windowFactory.CreateDishInfoEditorWindow(dataManager.GetDishByName(selectedDish.Name), true); LoadDishesList(); }, _ => CanEditOrDelete); delete = new RelayCommand(_ => { dataManager.RemoveDish(selectedDish.Name); LoadDishesList(); }, _ => CanEditOrDelete); }