WPF TrreView 递归绑定数据源
效果如图
数据结构
public class DisplayViewModel
{
public string Name { get; set; }
public List<DisplayViewModel> Children { get; set; }
}
前端TreeView通过ItemTemplate
为其子级设置样式
<TreeView x:Name="treeView">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel>
<TextBlock VerticalAlignment="Center" FontSize="18" Text="{Binding Name}" Margin="2,0,0,0"></TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
设置数据源
List<DisplayViewModel> vm = new List<DisplayViewModel>();
DisplayViewModel oneData = new DisplayViewModel() { Name="1", Children=new List<DisplayViewModel>()};
oneData.Children.Add(new DisplayViewModel() { Name = "1-1", Children = new List<DisplayViewModel>()
{
new DisplayViewModel(){Name="1-1-1",Children=new List<DisplayViewModel>()}
}
});
oneData.Children.Add(new DisplayViewModel()
{
Name = "1-2",
Children = new List<DisplayViewModel>()
{
new DisplayViewModel(){Name="1-2-1",Children=new List<DisplayViewModel>()
{
new DisplayViewModel(){Name="1-2-1-2",Children=new List<DisplayViewModel>()}
}
}
}
});
vm.Add(oneData);
vm.Add(new DisplayViewModel() { Name = "2", Children = new List<DisplayViewModel>() });
treeView.ItemsSource = vm;
示例代码
参考资料
学习技术最好的文档就是【官方文档】,没有之一。
还有学习资料【Microsoft Learn】、【CSharp Learn】、【My Note】。
如果,你认为阅读这篇博客让你有些收获,不妨点击一下右下角的【推荐】按钮。
如果,你希望更容易地发现我的新博客,不妨点击一下【关注】。