在TreeViewItem中存储对象?

时间:2011-05-14 02:42:35

标签: c# object silverlight-4.0 treeviewitem

我想在TreeViewItem中存储一个类的实例,这样我就不必让程序对可能选择的项目列表进行排序。

即使看起来像

的东西
Bagel Poppyseed = new Bagel();    
TreeViewItem TreeViewPoppyseed = new TreeViewItem();
TreeViewPoppyseed.Bagel = Poppyseed;

因此,只要选择了TreeViewPoppyseed,就不需要运行不同的方法来获取它拥有的Bagel实例。它可以像TreeView.SelectedItem.Bagel;

这样的事情是否已经存在?

2 个答案:

答案 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