【原创】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);

 最终效果

 

posted @ 2018-07-27 10:14  GudamPeter  阅读(442)  评论(0编辑  收藏  举报