首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >递归地向树状网格视图添加深度的方法

递归地向树状网格视图添加深度的方法
EN

Stack Overflow用户
提问于 2019-05-13 09:54:21
回答 1查看 165关注 0票数 -1

我的项源也是一个嵌套的可观察集合,其中包含分支。

我正在寻找一种递归添加级别的方法,而不是手动将它们嵌套在彼此之间。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-13 15:56:50

HierarchicalDataTemplate应该会为你做这件事。您只需要在TreeViewDataTemplate中定义它一次。

我认为我们只需要将HierachicalDataTemplateItemsSource绑定到您的类的嵌套属性中,它将负责其余的工作。

如果我误解了你的意图,请让我知道。

这是我的尝试:

XAML

代码语言:javascript
复制
<TreeView ItemsSource="{Binding Branches}">
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Branches}">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition></ColumnDefinition>
                    <ColumnDefinition></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <TextBox Grid.Column="0" Text="{Binding Id}"></TextBox>
                <TextBox Grid.Column="1" Text="{Binding Name}"></TextBox>
            </Grid>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

代码语言:javascript
复制
public class Branch
{
    public string Id { get; set; }
    public string Name { get; set; }
    public ObservableCollection<Branch> Branches { get; set; }
}

主要形式的硬编码值,用于测试目的

代码语言:javascript
复制
public partial class MainWindow : Window
{
    public Branch Branch { get; set; }

    public MainWindow()
    {
        Branch = new Branch()
        {
            Id = "1",
            Name = "A",
            Branches = new ObservableCollection<Branch>()
            {
                new Branch()
                {
                    Id = "2",
                    Name = "B",
                    Branches = new ObservableCollection<Branch>()
                    {
                        new Branch()
                        {
                            Id = "3",
                            Name = "C",
                        },
                        new Branch()
                        {
                            Id = "3",
                            Name = "C",
                            Branches = new ObservableCollection<Branch>()
                            {
                                new Branch()
                                {
                                    Id = "3",
                                    Name = "C",
                                },
                                new Branch()
                                {
                                    Id = "3",
                                    Name = "C",
                                }
                            }
                        }
                    }
                },
                new Branch()
                {
                    Id = "2",
                    Name = "B",
                    Branches = new ObservableCollection<Branch>()
                    {
                        new Branch()
                        {
                            Id = "3",
                            Name = "C",
                        }
                    }
                }
            }
        };

        InitializeComponent();
        this.DataContext = this.Branch;
    }
}

结果

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56104924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档