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的值来判断的,仅供参考。

相关推荐
绿龙术士12 小时前
构建现代化WPF应用:数据驱动开发与高级特性解析
c#·wpf
wangnaisheng2 天前
【WPF】Opacity 属性的使用
wpf
姬激薄2 天前
配置Hadoop集群-集群配置
wpf
python算法(魔法师版)2 天前
.NET 在鸿蒙系统上的适配现状
华为od·华为·华为云·.net·wpf·harmonyos
大道随心3 天前
【wpf】11 在WPF中实现父窗口蒙版效果:原理详解与进阶优化
wpf
zizisuo3 天前
9.1.领域驱动设计
wpf
大道随心3 天前
【wpf】10 C#树形控件高效实现:递归构建与路径查找优化详解
开发语言·c#·wpf
离歌漠4 天前
WPF内嵌其他进程的窗口
c#·wpf
沉到海底去吧Go4 天前
【身份证识别表格】批量识别身份证扫描件或照片保存为Excel表格,怎么大批量将身份证图片转为excel表格?基于WPF和腾讯OCR的识别方案
ocr·wpf·excel·身份证识别表格·批量扫描件身份证转表格·图片识别表格·图片识别excel表格
csdn_aspnet4 天前
WPF 性能 UI 虚拟化 软件开发人员的思考
ui·wpf