public override void Merge(FormField newField) { base.Merge(newField); OptionsField optionsField = (OptionsField)newField; List <Option> options = new List <Option>(optionsField.Options.Count); IReadOnlyList <Option> oldOptions = this.Options; foreach (var newOption in optionsField.Options) { Option option = oldOptions.Where(o => o.ScoreOption(newOption) > 0.0f).OrderByDescending(o => o.ScoreOption(newOption)).FirstOrDefault(); if (option == null) { options.Add(newOption); } else { option.Value = newOption.Value; options.Add(option); } } ReplaceOptions(options); }
public override void UpdateValues(CFXmlModel src) { OptionsField optionsField = src as OptionsField; this.Options = optionsField.Options; }