private void SetTextFromMarkupText(string markupText) { MarkupParser markupParser = new MarkupParser(); markupParser.Markup = markupText; markupParser.ReplaceAnchorValues(this.DataSource, this.ListSeparator); StringBuilder stringBuilder = new StringBuilder(); base.Links.Clear(); foreach (object obj in markupParser.Nodes) { XmlNode xmlNode = (XmlNode)obj; if (XmlNodeType.Element == xmlNode.NodeType && "a" == xmlNode.Name) { XmlAttribute xmlAttribute = xmlNode.Attributes["id"]; if (xmlAttribute != null) { base.Links.Add(new StringInfo(stringBuilder.ToString()).LengthInTextElements, new StringInfo(xmlNode.InnerText).LengthInTextElements, xmlAttribute.Value); } } stringBuilder.Append(xmlNode.InnerText); } if (base.Text == stringBuilder.ToString() && !string.IsNullOrEmpty(base.Text)) { this.OnTextChanged(EventArgs.Empty); } base.Text = stringBuilder.ToString(); }