深圳网站建设怎么做,php做网站首页,抖音广告推广,问政东营{Binding} 因为我们操作这个集合对象#xff0c;而不是集中某个对象#xff0c;所以直接写{Binding}就行 如果绑定是list集合的某个对象属性时候#xff0c;需要{bindingvpath 属性名}
Menu x:Namem1 ItemsSource{Binding}而不是集中某个对象所以直接写{Binding}就行 如果绑定是list集合的某个对象属性时候需要{bindingvpath 属性名}
Menu x:Namem1 ItemsSource{Binding}/Menu
树形数据模板 分层数据模板主要是用于MenuItem和TreeViewItem控件上 DATaType属性指定控件中使用的模型类 ItemsSource 树形控件使用的的数据源下一层的数据源 树形标签的内容区域对象的属性 1.1 定义模型类一个属性是菜单标题属性另外一个属性是保存子菜单对象集合 * 定义构造函数在构造函数进行判断如果有父级的菜单把当前对象添加到父级菜单list属性里面
树型模型的定义 menu的标题定义 // 整个对象需要放进一个list集合中里面SubMenus属性保存的子集的菜单
public class MenuInfo
{// 一级菜单标题使用字符串进行public string MenuName { get; set; } // 存储的是首页娱乐 军事 等一级标题// 子集菜单标题public ListMenuInfo SubMenus { get; set; }public MenuInfo(string m1,MenuInfo?parMenu){MenuName m1;if (parMenu ! null){// 不等于空的前提是 new MenuInfo(首页,MenuInfo)// 如果new MenuInfo(首页,MenuInfo) 证明没有子集菜单// 如果他的父级菜单是否有子集菜单如果有直接加进去 如果没有新建一个空的集合ListMenuInfo list parMenu.SubMenus ?? new ListMenuInfo();list.Add(this);parMenu.SubMenus list;}}} 1.2 给Menu标签绑定list集合 注意创建对象时候 第二参数传递是父级菜单对象
首页的数据源 不要求有子集菜单MenuInfo houmCaiDan new MenuInfo(首页, null);//军事的一级菜单MenuInfo junshiCaiDan new MenuInfo(军事,null);//军事的二级菜单MenuInfo junshiCaiDan_1 new MenuInfo(军事1, junshiCaiDan);zongList.Add(houmCaiDan);zongList.Add(junshiCaiDan);1.3 找到menu设置dataContext this.m1.DataContext zongList; 1.4 添加HierarchicalDataTemplate模版 绑定数据是总的list的某个对象下的Submens子菜单集合绑定的是子集菜单对象集合
HierarchicalDataTemplate DataType{x:Type et:MenuInfo}ItemsSource{Binding PathSubMenus}TextBlock Text{Binding PathMenuName} MouseDownf1/TextBlock
/HierarchicalDataTemplate
1.5 添加textblock 绑定子集菜单标题
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());}}