WPF中Treeview绑定数据库数据

来源:互联网 发布:网络舆情培训 编辑:程序博客网 时间:2024/05/16 05:34
WPF遍历所有的节点其实和Winform的一样,都是从跟级开始读:这个是我写的一个类,明天在写出来添加删除的来:
class BindTreeView    {        private DataTable dt;        private string sql = "";        DBHealper db = new DBHealper();//连接数据库的类        /// 2012-02-24 By Dawn        /// <summary>        /// 从数据库中读取数据填充Treeview的父节点        /// </summary>        /// <param name="tr">读取数据的Treeview</param>        public void TreeViewBind(TreeView tr)        {            tr.Items.Clear();//先清理一下节点            sql = "select * from Node where NodeVisble=1";//我要读的节点  NodeVisble自己定义的是否显示节点 1为显示            dt = db.ExecuteSqlDS(sql); //这个不用关心,执行sql语句的嘛            if (dt != null || dt.Rows.Count > 0)            //判断一线有没有数据            {                //首先遍历父节点                TreeViewItem item;//wpf不再是节点了  改成item 其实是一样的                DataRow[] dr = dt.Select("ParentID='0'");  //判断一下啊 ,我用ParentID(父节点的值)这个是我定义好的要根据                                                          // 这个读父节点的                 if (dr.Length != 0)                {                    foreach (DataRow drTemp in dr)                    {                        item = new TreeViewItem();                        item.Tag = drTemp["ID"].ToString();     //一般绑定ID                        item.Header = drTemp["NodeName"].ToString();    //名称                          tr.Items.Add(item);                        item.IsExpanded = true;                        BindNode(item);                    }                }            }        }        /// <summary>        /// 遍历所有的子节点        /// </summary>        /// <param name="item">父节点的item</param>        private void BindNode(TreeViewItem item)        {            DataRow[] dr = dt.Select("ParentID = '" + item.Tag + "'"); //查询子节点条件            if (dr.Length > 0)                foreach (DataRow drTemp in dr)                {                    TreeViewItem childItem = new TreeViewItem();                    childItem.Header = drTemp["NodeName"].ToString();                    childItem.Tag = drTemp["ID"].ToString();                    //node.ChildNodes.Add(node);                    item.Items.Add(childItem);                    item.IsExpanded = true;                    BindNode(childItem);                }        }    }

原创粉丝点击