为了将对象(例如,类的实例)存储在 TreeViewItem 中,我当前将该对象存储在TreeViewItem
's Header
然后覆盖ToString
该类的方法,以便它显示正确的字符串标题;然后我在事件期间将对象投射回来。
这是实现这种事情的正确方法,还是有更好、更合适的方法?
“正确”的方法是添加object
to the TreeView
's (or TreeViewItem
's) Items
收集和使用HierarchicalDataTemplate
控制项目的渲染方式:
人物.cs:
public class Person
{
private readonly ICollection<Person> _children = new ObservableCollection<Person>();
public string Name { get; set; }
public ICollection<Person> Children
{
get
{
return _children;
}
}
}
Window1.xaml.cs:
public Window1()
{
InitializeComponent();
var people = new List<Person>();
var kent = new Person() { Name = "Kent" };
kent.Children.Add(new Person() { Name = "Tempany" });
people.Add(kent);
_treeView.ItemsSource = people;
}
窗口1.xaml:
<TreeView x:Name="_treeView">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:Person}" ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)