TREEVIEW的用法,请大家帮忙解答。谢谢。

EverlastingLoveWei 2014-05-08 03:54:03
我有一个TREEVIEW。如下:

我想做的是点击财务部,在右侧DATAGRID里面显示财务部的数据,
点击下面的高级用户,也会显示高级用户的数据。
现在不懂的地方是:
我若点击了“财务部”,如何获取到“部门”,以便于操作数据库。

谢谢大家!~
...全文
288 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
EverlastingLoveWei 2014-05-09
  • 打赏
  • 举报
回复
感谢:
引用 1 楼 KumaPower 的回复:
如果你的treeview加载数据的方法“够好”的话,就好容易找到,问题是不知道你是怎么样加载数据到treeview的
引用 4 楼 w_2612328_w 的回复:
找 本级的父 Id ,或者你绑定的时候, 把你需要的指放到 财务部 级的节点上(实体)
引用 5 楼 jianrongking 的回复:
我是把要去的值 存在treeviewitem的 tag里的 TreeViewItem ss = new TreeViewItem ; ss.Tag = "部门"; TreeViewItem tvi = (TreeViewItem)treeViewDepartment.SelectedItem;
引用 8 楼 u011182647 的回复:
你这样写 你顶级的不就是固定了嘛。你把所有数据都从数据库取出来 然后一个一个节点的绑上去啊
感谢大家对我的帮助。 问题已经解决了。 如下代码:
        void Get_T2()
        {

            //定义LTClient
            Service1Client LTClient = new Service1Client();

            //发送请求
            LTClient.GetSECTIONTABLEAsync();

            //返回完整信息
            LTClient.GetSECTIONTABLECompleted += new EventHandler<GetSECTIONTABLECompletedEventArgs>(G_Get_T2);

            //关闭请求
            LTClient.CloseAsync();

        }
        void G_Get_T2(object sender, GetSECTIONTABLECompletedEventArgs e)
        {
            //声明
            System.Collections.ObjectModel.ObservableCollection<OracleService1.SECTIONTABLE> Temp = new System.Collections.ObjectModel.ObservableCollection<SECTIONTABLE>();

            //赋值
            Temp = e.Result;


            TreeView source = new TreeView();

            TreeViewItem selectedItem = source.SelectedItem as TreeViewItem;

            IList<TreeViewItem> newItems = new List<TreeViewItem>();

            var T = from item in Temp
                    select item.SC;

            foreach (var item in T)
            {

                newItems.Add(new TreeViewItem() { Header = item.ToString() });

            }

            T2.ItemsSource = newItems;
        }
        private void TreeView_Loaded(object sender, RoutedEventArgs e)
        {
            Get_T2();
        }
EverlastingLoveWei 2014-05-09
  • 打赏
  • 举报
回复
引用 8 楼 u011182647 的回复:
你这样写 你顶级的不就是固定了嘛。你把所有数据都从数据库取出来 然后一个一个节点的绑上去啊
好的,我试一试。谢谢。。
小恒丶 2014-05-08
  • 打赏
  • 举报
回复
你这样写 你顶级的不就是固定了嘛。你把所有数据都从数据库取出来 然后一个一个节点的绑上去啊
EverlastingLoveWei 2014-05-08
  • 打赏
  • 举报
回复
引用 1 楼 KumaPower 的回复:
如果你的treeview加载数据的方法“够好”的话,就好容易找到,问题是不知道你是怎么样加载数据到treeview的
我想学习一下,怎样的加载才是好方法,可否告知一二?多谢,多谢。
EverlastingLoveWei 2014-05-08
  • 打赏
  • 举报
回复
引用 4 楼 w_2612328_w 的回复:
找 本级的父 Id ,或者你绑定的时候, 把你需要的指放到 财务部 级的节点上(实体)
我是新手,不是太懂,忘大侠多帮扶。
引用 5 楼 jianrongking 的回复:
我是把要去的值 存在treeviewitem的 tag里的 TreeViewItem ss = new TreeViewItem ; ss.Tag = "部门"; TreeViewItem tvi = (TreeViewItem)treeViewDepartment.SelectedItem;
谢谢,我试一下。
jianrongking 2014-05-08
  • 打赏
  • 举报
回复
我是把要去的值 存在treeviewitem的 tag里的 TreeViewItem ss = new TreeViewItem ; ss.Tag = "部门"; TreeViewItem tvi = (TreeViewItem)treeViewDepartment.SelectedItem;
w_2612328_w 2014-05-08
  • 打赏
  • 举报
回复
找 本级的父 Id ,或者你绑定的时候, 把你需要的指放到 财务部 级的节点上(实体)
EverlastingLoveWei 2014-05-08
  • 打赏
  • 举报
回复
辛苦各位了,麻烦帮忙看下。 谢谢啦。
EverlastingLoveWei 2014-05-08
  • 打赏
  • 举报
回复
引用 1 楼 KumaPower 的回复:
如果你的treeview加载数据的方法“够好”的话,就好容易找到,问题是不知道你是怎么样加载数据到treeview的
是这样的,先:
<sdk:TreeView x:Name="TREE" HorizontalAlignment="Left" Height="444" Margin="10,145,0,0" VerticalAlignment="Top" Width="215" BorderBrush="#FF617584" Loaded="TreeView_Loaded" FontSize="16" SelectedItemChanged="TreeView_SelectedItemChanged">
            <sdk:TreeViewItem x:Name="T1" Header="用户" Margin="0" />
            <sdk:TreeViewItem x:Name="T2" Header="部门" Margin="0" />
            <sdk:TreeViewItem x:Name="T3" Header="用户类型" Margin="0" />
            <sdk:TreeViewItem x:Name="T4" Header="权限" Margin="0" />
            <sdk:TreeViewItem x:Name="T5" Header="功能" Margin="0" />
        </sdk:TreeView>
CS代码:
        private void TreeView_Loaded(object sender, RoutedEventArgs e)
        {
            TVIEW();
        }
        void TVIEW()
        {
            Get_T1();
            Get_T2();
            Get_T3();
            Get_T4();
            Get_T5();
        }
        void Get_T1()
        {

            //定义LTClient
            Service1Client LTClient = new Service1Client();

            //发送请求
            LTClient.GetUSERTABLEAsync();

            //返回完整信息
            LTClient.GetUSERTABLECompleted += new EventHandler<GetUSERTABLECompletedEventArgs>(G_Get_T1);

            //关闭请求
            LTClient.CloseAsync();

        }

        //获取事件
        void G_Get_T1(object sender, GetUSERTABLECompletedEventArgs e)
        {
            //声明
            System.Collections.ObjectModel.ObservableCollection<OracleService1.USERTABLE> Temp = new System.Collections.ObjectModel.ObservableCollection<USERTABLE>();

            //赋值
            Temp = e.Result;

            var T = from item in Temp
                    select item.Uname;

            foreach (var item in T)
            {
                T1.Items.Add(item.ToString());
            }
        }
麻烦了。
Bonjour-你好 2014-05-08
  • 打赏
  • 举报
回复
如果你的treeview加载数据的方法“够好”的话,就好容易找到,问题是不知道你是怎么样加载数据到treeview的

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧