public override bool UpdateItem(ContentItem item, Control editor) { TextBox tb = (TextBox)editor; string[] rows = tb.Text.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); for (int i = item.Children.Count - 1; i >= 0; --i) { int index = Array.FindIndex(rows, delegate(string row) { return row == item.Children[i].Title; } ); if (index < 0) Context.Persister.Delete(item.Children[i]); } for (int i = 0; i < rows.Length; i++) { ContentItem child = FindChild(item, rows[i]); if (child == null) { child = new Option(); child.Title = rows[i]; child.AddTo(item); } child.SortOrder = i; editor.RegisterItemToSave(child); } return true; }