internal override BaseViewModel CreateEditor()
        {
            var list = new BindingList <ValueDisplayItem>();

            foreach (var item in mLookUp.Values)
            {
                list.Add(item);
            }

            var editor = new IngredientReferenceEditorViewModel(list, this);

            UpdateLookUpWhenComplete(editor);
            return(editor);
        }
        private async void UpdateLookUpWhenComplete(IngredientReferenceEditorViewModel editor)
        {
            if (await editor.Completed)
            {
                var list = editor.Ingredients;

                var newIngredients = list.Cast <IngredientItem>().Where(i => mIngredients[i.ID] == null);
                foreach (var ingredient in newIngredients)
                {
                    mIngredients.Items.Add(ingredient.Ingredient);
                }

                RefreshLookUp();
            }
        }