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 "";
        }