public RecipeAddViewModel(IControllerFactory factory, IDishSubject subject, IngredientListViewModel ingredientsViewModel) { this.factory = factory; this.recipe = new RecipeAddDTO(); this.MustSelectDish = true; this.SaveCommand = new DelegateCommand(Save, CanSave); this.RemoveCommand = new DelegateCommand( () => Ingredients.Remove(IngredientPortion), obj => IngredientPortion != null); this.IngredientsViewModel = ingredientsViewModel; this.Dishes = new ObservableCollection <DishDisplayDTO>(); this.Ingredients = new ObservableCollection <IngredientPortion>(); ingredientsViewModel.IngredientSelected += (s, e) => { string ingredientName = e.Data.Name; if (!Ingredients.Any(ingredientPortion => ingredientPortion.Ingredient == ingredientName)) { Ingredients.Add(new IngredientPortion { Ingredient = ingredientName, Portion = Portion }); } Portion = String.Empty; }; subject.Subscribe(this); Update(); }
public UIElement GetAddView(IDishSubject dishSubject, IIngredientSubject ingredientSubject) { IngredientListViewModel ingredientsViewModel = new IngredientListViewModel(factory, ingredientSubject); RecipeAddViewModel viewModel = new RecipeAddViewModel(factory, dishSubject, ingredientsViewModel); RecipeAddView view = new RecipeAddView(viewModel); viewModel.RecipeAdded += (s, ea) => OnAdd(ea.Data, viewModel); return(view); }
public DishListViewModel(IControllerFactory factory, IDishSubject subject) { this.factory = factory; this.SelectCommand = new DelegateCommand( () => RaiseDishSelectedEvent(Dish), obj => Dish != null); this.Dishes = new ObservableCollection <DishDisplayDTO>(); subject.Subscribe(this); Update(); }