问题描述
1.下拉式菜单的实现示例代码:<TreeView><TreeViewItemHeader="Desktop"><TreeViewItemHeader="Computer"></TreeViewItem><TreeViewItemHeader="RecycleBin"></TreeViewItem><TreeViewItemHeader="ControlPanel"><TreeViewItemHeader="Programs"/><TreeViewItemHeader="Security"/></TreeViewItem><TreeViewItemHeader="Network"></TreeViewItem></TreeViewItem></TreeView>
TreeViewItem控件下面可以继续使用TreeViewItem控件作为它的子元素。实现层级菜单功能。使用代码来动态的加载TreeView示例代码:///<summary>///在窗口加载的时候动态加载TreeView//</summary>///<paramname="sender">事件的发送者其调用的事件处理器</param>///<paramname="e">包含与路由事件相关的状态信息和事件数据</param>privatevoidWindow_Loaded(objectsender,RoutedEventArgse){//签到管理TreeViewItemtriSign=newTreeViewItem();//创建子节点triSign.Header="员工签到";//子节点命名ButtonbtnSign=newButton();//创建按钮btnSign.Content="查看签到";//按钮命名btnSign.Click+=btnSign_Click;triSign.Items.Add(btnSign);//将按钮添加至子节点之下trMenu.Items.Add(triSign);//将子节点添加至treeview}
相关知识参考WPFsender、e.Source、e.OriginalSource三者概念差别:http://blog.sina.com.cn/s/blog_a57b4c240101g121.htmlhttp://bbs.csdn.net/topics/390652645?page=1或者是这样:前台部分代码<TreeViewName="menus"><TreeViewItemName="tvid"Header="Desktop"Selected="tvid_Selected"><TreeViewItemName="tvi1"Header="员工信息"/><TreeViewItemName="tvi2"Header="个人信息"/><TreeViewItemName="tvi3"Header="通知管理"/><TreeViewItemName="tvi4"Header="通讯录"/><TreeViewItemName="tvi5"Header="联系管理员"/><TreeViewItemName="tvi6"Header="Network"/></TreeViewItem></TreeView>
后台代码//为相应的TreeViewItem添加Selected事件。privatevoidtvid_Selected(objectsender,RoutedEventArgse){//获取当前点击的TreeViewItem节点TreeViewItemtreeItem=(TreeViewItem)menus.SelectedItem;//判断是哪一个子节点,执行相应的事件。if(treeItem.Name=="tvi1"){//将Page1.xaml显示在Frame这个框架中iFrame.Source=newUri("Page1.xaml",UriKind.Relative);//显示tvi1的Header属性MessageBox.Show(tvi1.Header.ToString());}}
解决方案
解决方案二:
学习了,之前只学过在数据表结构里面treeview下拉树通过配置数据源
解决方案三:
TreeViewItem控件-》对象,而非控件。它的内容可以是任意类型。