Delphi TXMLNodeCollection.AddItem 插入错误位置
Delphi TXMLNodeCollection.AddItem inserts in the wrong position
我在 Delphi XE2 中并使用 TXMLNodeCollection.AddItem 将 IXMLNode 插入到列表中的位置 1。我的列表中已经有两个节点。相反,它所做的是插入到位置 0。当我尝试通过插入到位置 2 来调整它时认为它会转到 1,它实际上插入到最后的位置 2。
代码如下:
TXMLChartTemplateRowList = class(TXMLNodeCollection, IXMLChartTemplateRowList)
protected
{ IXMLChartTemplateRowList }
function Add: IXMLChartTemplateRow;
function Insert(const Index: Integer): IXMLChartTemplateRow;
function Get_Item(Index: Integer): IXMLChartTemplateRow;
end;
implementation
function TXMLChartTemplateRowList.Insert(const Index: Integer): IXMLChartTemplateRow;
begin
Result := AddItem(Index) as IXMLChartTemplateRow;
end;
我很困惑,请帮忙。
我发现在修改列表后从 TXMLNodeCollection class 调用 Resync 方法可以解决此问题。
我在 Delphi XE2 中并使用 TXMLNodeCollection.AddItem 将 IXMLNode 插入到列表中的位置 1。我的列表中已经有两个节点。相反,它所做的是插入到位置 0。当我尝试通过插入到位置 2 来调整它时认为它会转到 1,它实际上插入到最后的位置 2。
代码如下:
TXMLChartTemplateRowList = class(TXMLNodeCollection, IXMLChartTemplateRowList)
protected
{ IXMLChartTemplateRowList }
function Add: IXMLChartTemplateRow;
function Insert(const Index: Integer): IXMLChartTemplateRow;
function Get_Item(Index: Integer): IXMLChartTemplateRow;
end;
implementation
function TXMLChartTemplateRowList.Insert(const Index: Integer): IXMLChartTemplateRow;
begin
Result := AddItem(Index) as IXMLChartTemplateRow;
end;
我很困惑,请帮忙。
我发现在修改列表后从 TXMLNodeCollection class 调用 Resync 方法可以解决此问题。