我正在管理一个段落来替换RichTextBox的一行(内联)。 但是作为InlineCollection的Paragraph.Inlines没有像这样的索引选择器 Paragraph.Inlines [0],我需要替换此集合中的一个项目。我怎样才能做到这一点?继续:如何替换没有索引选择器的集合中的项目。
我尝试了这个,但是他抛出了这个“'InlineCollection'元素无法插入到树中,因为它已经是树的子级了。”:
public List<ControlMessages> ControlMessages = new List<ControlMessages>();
public Paragraph PTrace = new Paragraph();
public void WriteControlMessage(string _id, string _message) {
ControlMessage cm = new ControlMessage(_id, _message);
ControlMessages.Add(cm);
PTrace.Inlines.Add(cm.Line);
}
public void UpdateControlMessage(string _id, string _message) {
ControlMessage cm = ControlMessages.Where(wh => wh.Id == _id).FirstOrDefault();
cm.SetMessage(_message);
PTrace.Inlines.InsertAfter(cm.OldLine, cm.Line);
PTrace.Inlines.Remove(cm.OldLine);
}
public class ControlMessage {
public string Id { get; set; }
public Inline Line { get; set; }
public Inline OldLine { get; set; }
public ControlMessage(string _id, string _message) {
Id = _id;
SetMessage(_message);
}
public void SetMessage(string _message) {
OldLine = Line;
Paragraph p = new Paragraph();
p.Inlines.Add(_message);
Line = p.Inlines.LastInline;
}
}