Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有方法在WPF中选择此自定义树视图中的项目?_C#_Wpf_Xaml_Treeview - Fatal编程技术网

C# 是否有方法在WPF中选择此自定义树视图中的项目?

C# 是否有方法在WPF中选择此自定义树视图中的项目?,c#,wpf,xaml,treeview,C#,Wpf,Xaml,Treeview,我从这个问题的答案开始工作:我正在努力让树中的项目被选中。如何使用这种类型的代码来实现这一点?谢谢 我试过制作文本块和文本框,但没有成功 C代码 元素是不可选择的,因为它们是DataTemplate中的简单文本块,因此没有任何可选择的行为。要使它们可选择,它们需要是TreeViewItem类型,因为WPF处理这些类型的选择 您不应该像现在这样手动模板化TreeView,而是应该使用HierarchycalDataTemplate让TreeView构建其TreeView项集合,如下所示: 至于您的

我从这个问题的答案开始工作:我正在努力让树中的项目被选中。如何使用这种类型的代码来实现这一点?谢谢

我试过制作文本块和文本框,但没有成功

C代码


元素是不可选择的,因为它们是DataTemplate中的简单文本块,因此没有任何可选择的行为。要使它们可选择,它们需要是TreeViewItem类型,因为WPF处理这些类型的选择

您不应该像现在这样手动模板化TreeView,而是应该使用HierarchycalDataTemplate让TreeView构建其TreeView项集合,如下所示:


至于您的对齐需要,我硬编码了宽度=80和宽度=100,因为您已经有了硬编码的值,但我认为这并不是解决方案存在的方式。

粘贴代码时,您的树项目对我来说似乎非常可选。也许您希望能够在项目中选择单个文本块?在这种情况下,需要对xaml进行返工。请澄清!您试图选择的是什么?物体本身?文本块控件?每一行都需要一种不同的方法。@CorentPane我试图分别选择每一行,例如,Write 2 It Pays the bills,但我不需要选择标题,例如,Communication 2 Communication Task。谢谢,汉克斯,这对我来说是可行的,我会对评论投赞成票,但不幸的是我没有足够的代表来这么做。
public class Company
{
    public string Task { get; set; }
    public string durationTotal { get; set; }
    public string HeadNote { get; set; }
    public List<Model> Models { get; set; }
}
public class Model
{
    public string SubTask { get; set; }
    public string Duration { get; set; }
    public string Notes { get; set; }      
}
List<Company> ManufacturerList = new List<Company>();

        ManufacturerList.Add(new Company()
        {
            Task = "Coding",
            durationTotal = "4",
            HeadNote = "Coding Task",
            Models = new List<Model>()
            {new Model(){SubTask = "Write", Duration = "2", Notes ="It pays the bills" },
            new Model(){SubTask = "Compile", Duration = "1", Notes ="c# or go home" },
            new Model(){SubTask = "Test", Duration = "1", Notes ="works on my m/c" },}
        });


        ManufacturerList.Add(new Company()
        {
            Task = "Communicate",
            durationTotal = "2",
            HeadNote = "Communicate Task",
            Models = new List<Model>()
            {new Model(){SubTask = "Email", Duration = "0.5", Notes ="so much junk mail"  },
            new Model(){SubTask = "Blogs", Duration = "0.25", Notes ="blogs.msdn.com/delay" },
            new Model(){SubTask = "Twitter", Duration = "0.25", Notes ="RT:nothing to report" },}
        });

        treeviewList.ItemsSource = ManufacturerList;