protected override void OnNavigatedTo(NavigationEventArgs e) { Type type = e.Parameter.GetType(); TotalAmountUOMTextBox.ItemsSource = _unitOfMeasureList; if (type == typeof(FoodCategoryViewModel)) { FoodCategoryViewModel category = (FoodCategoryViewModel)e.Parameter; CategoryTextBox.Text = category.Name; CategoryTextBox.IsReadOnly = true; _existingMealItem = new MealItemViewModel(); _existingMealItem.Category = category.Name; } else if (type == typeof(MealItemViewModel)) { _existingMealItem = (MealItemViewModel)e.Parameter; CategoryTextBox.Text = _existingMealItem.Category; CategoryTextBox.IsReadOnly = true; NameTextBox.Text = _existingMealItem.Name; NameTextBox.IsReadOnly = true; ingredientsViewModel = new IngredientsViewModel(); _selectedIngredientsList = ingredientsViewModel.GetIngredients(_existingMealItem.IngredientIDsWithTotalAmount); TotalAmountTextBox.Text = _existingMealItem.TotalAmount.ToString(); TotalAmountUOMTextBox.SelectedIndex = _existingMealItem.TotalAmountUnitOfMeasure-1; var copy = new ObservableCollection<IngredientViewModel>(_selectedIngredientsList); foreach (var ingredient in copy) { FindAndRemoveIngredient(_allIngredients, ingredient); } } AllIngredientsList.ItemsSource = _allIngredients; SelectedIngredientsList.ItemsSource = _selectedIngredientsList; }
private void MealItemsListView_SelectionChanged(object sender, SelectionChangedEventArgs e) { IngredientsListView.ItemsSource = null; IngredientsListView.Items.Clear(); MealItemViewModel mealItem = null; mealItem = (MealItemViewModel)MealItemsGridView.SelectedItem; if (mealItem != null) { ingredientsViewModel = new IngredientsViewModel(); ObservableCollection<IngredientViewModel> ingredients = ingredientsViewModel.GetIngredients(mealItem.IngredientIDsWithTotalAmount); IngredientsListView.ItemsSource = ingredients; } }
private string GetIngredientsAsText(IngredientsViewModel ingredientsView, MealItemViewModel mealItem, Dictionary<float,float> mealItemIDsWithWeight) { StringBuilder sb = new StringBuilder(); ObservableCollection<IngredientViewModel> ingredients = ingredientsView.GetIngredients(mealItem.IngredientIDsWithTotalAmount); if (ingredients.Count > 0) { //sb.Append(@"\b "); int loopCount = 0; UnitOfMeasureViewModel unitOfMeasure = new UnitOfMeasureViewModel(); MealItemViewModel defaultMealItem = new MealItemViewModel(); defaultMealItem = defaultMealItem.GetMealItemById(mealItem.Id); foreach (var ingredient in ingredients) { float ingredientDefaultWeight = mealItem.IngredientIDsWithTotalAmount[ingredient.Id]; if (defaultMealItem.TotalAmount == 0) defaultMealItem.TotalAmount = 1; float ingredientWeight = (ingredientDefaultWeight / defaultMealItem.TotalAmount) * mealItemIDsWithWeight[mealItem.Id]; decimal roundedIngredientWeight = Math.Round((decimal)ingredientWeight, 0); string uomName = unitOfMeasure.GetUnitOfMeasure(ingredient.UnitOfMeasure).Abbreviation; sb.Append(roundedIngredientWeight.ToString()); sb.Append(uomName).Append(" "); sb.Append(ingredient.Name); if ((ingredients.Count >1) && (loopCount < (ingredients.Count-1))) { sb.Append(", "); } loopCount++; } //sb.Append(@"\line\b0"); sb.Append(@"\line"); return sb.ToString(); } else return ""; }