赞
踩
{Binding} 因为我们操作这个集合对象,而不是集中某个对象,所以直接写{Binding}就行
如果绑定是list集合的某个对象属性时候,需要{bindingvpath = 属性名}
- <Menu x:Name="m1" ItemsSource="{Binding}">
-
- </Menu>
树形数据模板 : 分层数据模板,主要是用于MenuItem和TreeViewItem控件上
DATaType属性,指定控件中使用的模型类
ItemsSource 树形控件使用的的数据源,下一层的数据源
树形标签的内容区域对象的属性
树型模型的定义 menu的标题定义
// 整个对象需要放进一个list集合中里面SubMenus属性保存的子集的菜单
- public class MenuInfo
- {
- // 一级菜单标题使用字符串进行
- public string MenuName { get; set; } // 存储的是首页娱乐 军事 等一级标题
-
- // 子集菜单标题
- public List<MenuInfo> SubMenus { get; set; }
-
- public MenuInfo(string m1,MenuInfo?parMenu)
- {
- MenuName = m1;
- if (parMenu != null)
- {
- // 不等于空的前提是 new MenuInfo("首页",MenuInfo)
- // 如果new MenuInfo("首页",MenuInfo) 证明没有子集菜单
- // 如果他的父级菜单是否有子集菜单,如果有直接加进去 如果没有新建一个空的集合
- List<MenuInfo> list = parMenu.SubMenus ?? new List<MenuInfo>();
- list.Add(this);
- parMenu.SubMenus = list;
- }
- }
-
- }

- 首页的数据源 不要求有子集菜单
- MenuInfo houmCaiDan = new MenuInfo("首页", null);
-
- //军事的一级菜单
- MenuInfo junshiCaiDan = new MenuInfo("军事",null);
- //军事的二级菜单
- MenuInfo junshiCaiDan_1 = new MenuInfo("军事1", junshiCaiDan);
-
- zongList.Add(houmCaiDan);
- zongList.Add(junshiCaiDan);
this.m1.DataContext = zongList;
- <HierarchicalDataTemplate DataType="{x:Type et:MenuInfo}"
- ItemsSource="{Binding Path=SubMenus}">
- <TextBlock Text="{Binding Path=MenuName}" MouseDown="f1"></TextBlock>
- </HierarchicalDataTemplate>
- private void f1(object sender, MouseButtonEventArgs e)
- {
- // MessageBox.Show(((TextBlock)sender).Text.ToString());
- string name = ((TextBlock)sender).Text.ToString();
- if (name == "首页")
- {
- this.f2.Navigate(new Home());
- }
- else if (name == "娱乐")
- {
- this.f2.Navigate(new YuLe());
- }
- else if (name == "军事1")
- {
- MessageBox.Show(name);
- }
- else if (name == "俄罗斯恐怖袭击事件")
- {
- this.f2.Navigate(new ELuosi());
- }
-
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。