当前位置: 首页 > news >正文

WPF 的TreeView的TreeViewItem下动态生成TreeViewItem

树形结构仅部分需要动态生成TreeViewItem的可以参考本文。

xaml页面

<TreeView MinWidth="220" ><TreeViewItem Header="功能列表" ItemsSource="{Binding Functions}"><TreeViewItem.ItemTemplate><HierarchicalDataTemplate><WrapPanel><CheckBox IsChecked="{Binding IsSelect}"/><Label Content="{Binding Name}"/></WrapPanel></HierarchicalDataTemplate></TreeViewItem.ItemTemplate></TreeViewItem>
</TreeView>

对象类:

public class SelectFunction : NotifyPropertyChangedBaseClass
{private bool isselect;/// <summary>/// 是否选中/// </summary>public bool IsSelect{get { return isselect; }set{isselect = value;OnPropertyChanged();}}public Guid Id { get; set; }private string name;public string Name{get { return name; }set{name = value;OnPropertyChanged();}}
}

对象类继承的通知类:

public class NotifyPropertyChangedBaseClass : INotifyPropertyChanged
{public event PropertyChangedEventHandler PropertyChanged;public void OnPropertyChanged([CallerMemberName] string propertyname = "")//通过该方法可以直接获取调用者的名称 前提是需要有默认参数{PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyname));}
}

XAML绑定的集合

 private ObservableCollection<SelectFunction> functions;/// <summary>/// 可选的功能列表/// </summary>public ObservableCollection<SelectFunction> Functions{get { return functions; }set{functions = value;OnPropertyChanged();}}//这只是集合的定义,自己给集合赋值

最终效果,我这没有用其自带的属性事件去判断是否选中,而是采用对象类中的IsSelect的值来判断的,仅供参考。

http://www.lryc.cn/news/445247.html

相关文章:

  • 使用Go语言的互斥锁(Mutex)解决并发问题
  • Android平台Unity3D下如何同时播放多路RTMP|RTSP流?
  • 网络:TCP协议-报头字段
  • JAVA基础:HashMap底层数组容量控制,TreeMap底层存取机制,位运算符,原码反码补码
  • 【Redis】Redis 缓存设计:抗住百万并发量的最佳实践
  • 【hot100-java】【缺失的第一个正数】
  • 独立站新手教程转化篇:如何做好移动端优化?
  • Mybatis Plus分页查询返回total为0问题
  • VulnHub-Narak靶机笔记
  • 查看和升级pytorch到指定版本
  • Maya---机械模型制作
  • 请不要在TS中使用Function类型
  • 关于UVM仿真error数量达到指定值就退出仿真的设置
  • chatGPT问答知识合集【二】
  • 不靠学历,不拼年资,怎么才能月入2W?
  • 【软考】多核CPU
  • 制作炫酷个人网页:用 HTML 和 CSS3 展现你的风格
  • WinCC中归档数据片段的时间和尺寸设置
  • kubernetes网络(二)之bird实现节点间BGP互联的实验
  • 动态语言? 静态语言? ------区别何在?java,js,c,c++,python分给是静态or动态语言?
  • 计算机网络17——IM聊天系统——客户端核心处理类框架搭建
  • C/C++面试题
  • [3]Opengl ES着色器
  • Spring Boot 中实现任务后台处理的几种常见方式
  • 部署--UmiJS
  • python自学笔记
  • Ubuntu磁盘不足扩容
  • 【ROS2】spin、spinOnce、spin_some、spin_until_future_complete
  • 化繁为简:中介者模式如何管理复杂对象交互
  • 控制STM32蜂鸣器示例代码(江科大)