我想在TreeViewItem中存储一个类的实例,这样我就不必让程序对可能选择的项目列表进行排序。
即使看起来像
的东西Bagel Poppyseed = new Bagel();
TreeViewItem TreeViewPoppyseed = new TreeViewItem();
TreeViewPoppyseed.Bagel = Poppyseed;
因此,只要选择了TreeViewPoppyseed,就不需要运行不同的方法来获取它拥有的Bagel实例。它可以像TreeView.SelectedItem.Bagel;
这样的事情是否已经存在?
答案 0 :(得分:4)
这是Tag
属性的用途,您可以将对象放在那里并稍后检索。
见这里:http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.tag.aspx
此外,如果您的数据绑定到该对象,那么它将在DataContext
属性中。
答案 1 :(得分:1)
您可以为树视图项创建数据模板,然后可以访问DataContext属性以获取绑定对象。
在事件处理程序中:
TreeViewItem tvi = (TreeViewItem)sender;
Bagel bagel = (Bagel)tvi.DataContext;
//do whatever you want with bagel and tree view item