将对象绑定到 TreeView

Binding Object to TreeView

我想将我的对象绑定到 TreeView

我设置了以下对象:

public class BuildStep
{
    public int Id { get; set; }
    public int NodeLevel { get; set; }
    public List<BuildStep> Children { get; set; }
}

现在,我想将此数据绑定到 TreeView。我阅读了很多关于 HierarchicalDataTemplate 的答案和文档,但无法正常工作!

如何将此对象绑定到 TreeView?

您将 TreeViewItemsSource 属性 设置或绑定到 BuildStep 根节点的 IEnumerable

List<BuildStep> rootNodes = new List<BuildStep>() { /* build your list of BuildSteps */ };
treeView.ItemsSource = rootNodes;

然后您可以像这样使用 HierarchicalDataTemplate

<TreeView x:Name="treeView" xmlns:local="clr-namespace:WpfApplication1">
    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="{x:Type local:BuildStep}" ItemsSource="{Binding Children}">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Id}" />
                <TextBlock Text="{Binding NodeLevel}" />
            </StackPanel>
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

WpfApplication1指的是BuildStepclass.

的命名空间