c# wpf treeview 动态创建级别
时间: 2025-02-07 17:13:28 浏览: 16
动态创建 C# WPF TreeView 控件的层级结构
为了实现动态创建 TreeView
的层级结构,在 C# 和 WPF 中可以采用数据绑定的方式。通过定义一个树形视图模型类来表示层次结构中的各个节点,并利用 ObservableCollection<TreeViewModel>
来存储子项集合。
定义树形视图模型类
首先,定义一个内部类 TreeViewModel
用于描述单个树节点的数据模板:
internal class TreeViewModel {
public string? Name { get; set; }
public ObservableCollection<TreeViewModel> Children { get; set; } = new ObservableCollection<TreeViewModel>();
}
此部分代码提供了基础架构以便于后续构建复杂的父子关系链表[^1]。
构建并填充树状结构
接着可以在后台逻辑中编写方法来实例化这些对象并将它们链接起来形成所需的层次结构。下面是一个简单的例子展示如何递归地向根节点添加多个级别的子节点:
private void BuildTree(ObservableCollection<TreeViewModel> parentNodes, int levelCount) {
if (levelCount <= 0) return;
foreach (var parentNode in parentNodes) {
var childNode = new TreeViewModel() { Name = $"Level-{levelCount}" };
parentNode.Children.Add(childNode);
// Recursively add more children to the current node.
BuildTree(parentNode.Children, levelCount - 1);
}
}
// Usage Example:
public MainWindow() {
InitializeComponent();
var rootItems = new ObservableCollection<TreeViewModel>() {
new TreeViewModel(){Name="Root"}
};
BuildTree(rootItems, 3); // Creates a three-level deep hierarchy under each "root".
tree.ItemsSource = rootItems;
}
这段代码展示了怎样从最顶层开始逐层向下扩展新的分支直到达到指定层数为止。
设置 XAML 布局与样式
最后一步是在XAML文件里配置好相应的布局以及应用样式使所有项目默认处于展开状态:
<TreeView Name="tree">
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="True"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
上述设置确保了当程序启动时所有的父级条目都会自动打开显示其下的全部后代成员[^2]。
相关推荐


















