在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);
最终效果