C# 将项目并排放置在树视图中

C# 将项目并排放置在树视图中,c#,.net,wpf,treeview,C#,.net,Wpf,Treeview,我正在尝试创建一个树视图,其中树中的每个元素都并排包含一个复选框和一个组合框。我能够在TreeView中生成组合框,并尝试使用另一个TreeView,但这仍然不能产生我想要的输出(我希望复选框和组合框并排出现,而不是像我在下面的代码中管理的那样一个接一个地出现),有什么方法可以实现这一点吗?下面是我现在使用的代码,非常简单。我只是简单地将项目添加到树视图中,是否有一种方法可以将两个项目并排放置在树视图中 TreeViewItem foo = new TreeViewItem();

我正在尝试创建一个树视图,其中树中的每个元素都并排包含一个复选框和一个组合框。我能够在TreeView中生成组合框,并尝试使用另一个TreeView,但这仍然不能产生我想要的输出(我希望复选框和组合框并排出现,而不是像我在下面的代码中管理的那样一个接一个地出现),有什么方法可以实现这一点吗?下面是我现在使用的代码,非常简单。我只是简单地将项目添加到树视图中,是否有一种方法可以将两个项目并排放置在树视图中

 TreeViewItem foo = new TreeViewItem();
        foo.Header = groupName.Text;
        treeView1.Items.Add(foo);
        Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
        dlg.Filter = "Text files (*.txt)|*.txt";
        dlg.FilterIndex = 0;
        dlg.Multiselect = true;
        dlg.RestoreDirectory = true;
        dlg.Title = "Read .txt Log File";
        if (dlg.ShowDialog() == true)
        {
            newList = new DynoFileList(groupName.Text); 
            foreach (String file in dlg.FileNames)
            {
                TreeViewItem foo2 = new TreeViewItem();
                DynoFile testing = new DynoFile(file,groupName.Text); // Creating a new Dyno run file
                CheckBox test = new CheckBox();
                ComboBox ColorSelect = new ComboBox();
                test.Click += new RoutedEventHandler(BoxClicked);
                test.Content = testing.getName();
                foo.Items.Add(test);
                foo.Items.Add(foo2); // This does not quite produce the output that I desire, I was the items to be side by side, not cascaded in any way. The second TreeView is not absolutely necessary
                foo2.Items.Add(ColorSelect);// This does not quite produce the output I want
                newList.addRun(testing); 
                allBoxes.Add(test);

            }

        }

您需要了解WPF中的数据模板,它们非常强大,将使您的生活更加轻松

特别是查看HierarchycalDataTemplates。有一个


我还发表了一篇文章,您也会发现这篇文章很有用。

为了进一步阐述上述答案,WPF中的数据模板可能是最常用的将数据转换为UI的方法之一。ItemsControl(TreeView的子类来自)包含您的对象(飞机、足球队、客户等),但它将其显示为一组圆形框,例如,带有一些文本、复选框和按钮。我建议大家阅读数据模板,并对其进行大量实验,以便更好地处理它。如果您正在编写一个UI,它将处理除最简单的项之外的任何内容,那么您几乎总是使用数据模板。