Silverlight Treeview 相关操作:加载,保存,索引节点,节点移动,模板节点

     最近一个Silverlight项目中,需要多处表达展示内容的“父子”关系。自然用“树”来表达自然是再好不过。Ms Toolkit中包含了TreeView控件,很好的满足了需求。
     要表述树状关系,数据库的设计一定要合理,不然这层关系在加载的时候就会很痛苦。另外,根据需求,树状节点的展示还要有一定的顺序,所以一棵树在保存的时候,每个节点在树中的位置也要有所记录。
     
数据库设计

Code

     这样,加载的时候就可以根据ID,ParentID找到父子关系,并根据IDX来加载ID在树中的索引。这个索引要从树的第一个节点开始深度遍历,根据遍历到的节点的顺序记录其索引。

-树的加载

 string sqlTv = "SELECT * FROM PDM_BASIC_INFO ORDER BY IDX ASC";

Code

 

Code

 

 其中,节点的header属性为object类型,这样我们可以根据需求,为其赋予需要的控制项。

设置定制节点

Code

 Demo:

读取节点信息

Code

 

--=============
     另外,用户提出一些特定的需求:树状节点的顺序他们要自己调整。Liquid.Treeview控件,可以很好的实现节点的拖拽和移动,我们只需要在用户移动后深度遍历每个节点,并保存其位置索引信息即可。
    Liquid.Treeview节点的移动:

Code


遍历保存节点索引

Code

 

posted on 2009-03-14 08:42  easy2Dev  阅读(4083)  评论(6编辑  收藏  举报

导航