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