private ObservableCollection <IonSpeciesDefinition> GetFormulae(char mode)
        {
            ObservableCollection <IonSpeciesDefinition> formulae = new ObservableCollection <IonSpeciesDefinition>();
            IEnumerator <ISpeciesDefinition>            ps       = GetEnumerator(mode);

            while (ps.MoveNext())
            {
                if (ps.Current is ISpeciesDefinition)
                {
                    ISpeciesDefinition speciesDefinition = ps.Current as ISpeciesDefinition;
                    Console.WriteLine(speciesDefinition.ModifierFormula + "   " + speciesDefinition.ShorthandSpeciesFormula);
                    if (speciesDefinition.ModifierFormula.Trim().Length > 0)
                    {
                        formulae.Add(new IonSpeciesDefinition()
                        {
                            Ionspecies = speciesDefinition.ModifierFormula + "" + mode, Selected = speciesDefinition.Active
                        });
                    }
                    else
                    {
                        formulae.Add(new IonSpeciesDefinition()
                        {
                            Ionspecies = speciesDefinition.NeutralLoss, Selected = speciesDefinition.Active
                        });
                    }
                }
                Console.WriteLine(ps.Current);
            }
            return(formulae);
        }
        private void UpdateActiveIons(ObservableCollection <IonSpeciesDefinition> value, char mode)
        {
            if (value.Count == 0)
            {
                return;
            }
            IEnumerator <ISpeciesDefinition> ps = GetEnumerator(mode);

            while (ps.MoveNext())
            {
                if (ps.Current is ISpeciesDefinition)
                {
                    ISpeciesDefinition speciesDefinition = ps.Current as ISpeciesDefinition;
                    Console.WriteLine(speciesDefinition.ModifierFormula + "   " + speciesDefinition.ShorthandSpeciesFormula);
                    Boolean isActive = false;
                    foreach (IonSpeciesDefinition isd in value)
                    {
                        if (isd.Ionspecies == speciesDefinition.ModifierFormula + "" + mode || isd.Ionspecies == speciesDefinition.NeutralLoss)
                        {
                            isActive = true;
                        }
                    }
                    speciesDefinition.Active = isActive;
                }
                Console.WriteLine(ps);
            }
        }