为了在TreeViewItem中存储一个对象(比如一个类的实例),我当前正在将该对象存储在TreeViewItem
s中Header
,然后覆盖ToString
该类的方法,以便它显示正确的字符串头; 然后我在活动期间将物体投回.
这是实现这种事情的正确方法,还是有更好,更正确的方法?
"正确"的方法是只添加object
到TreeView
's(或TreeViewItem
's)Items
集合并使用a HierarchicalDataTemplate
来控制项目的呈现方式:
Person.cs:
public class Person { private readonly ICollection_children = new ObservableCollection (); public string Name { get; set; } public ICollection Children { get { return _children; } } }
Window1.xaml.cs:
public Window1() { InitializeComponent(); var people = new List(); var kent = new Person() { Name = "Kent" }; kent.Children.Add(new Person() { Name = "Tempany" }); people.Add(kent); _treeView.ItemsSource = people; }
Window1.xaml: