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