【原创】XAF ITreeNode+NonPersistent 使用方式
在XAF中使用非持久化对象创建出TreeList这种树形结构
private void SetShowRFID(TArchivesBorrow archivesInStorage, string rfidcode) { string rfidcodemain = "Main"; A_rfidstorage_archives_show archives_Show = new A_rfidstorage_archives_show(archivesInStorage.Session); archives_Show.rfidcode = rfidcode; if (archivesInStorage.showdetails.Any()) { var treeobject = archivesInStorage.showdetails.First(); archives_Show.parentObj = treeobject; archivesInStorage.showdetails.Add(archives_Show); treeobject.children.Add(archives_Show); //Debug.WriteLine("从"+ archives_Show.parentObj.rfidcode); } else { archivesInStorage.rfidcode = rfidcodemain; archivesInStorage.showdetails.Add(archives_Show); //Debug.WriteLine("主" + rfidcode); } //View.Refresh(); }
重点代码就是
archives_Show.parentObj = treeobject; archivesInStorage.showdetails.Add(archives_Show); treeobject.children.Add(archives_Show);
子节点由于不是持久化对象,Parent不会在添加的时候被赋予值 也就是调用这句
archivesInStorage.showdetails.Add(archives_Show);
最后注意下这两句的顺序
archivesInStorage.showdetails.Add(archives_Show);
treeobject.children.Add(archives_Show);
最终效果