2012-04-11 61 views
0

我怎样才能访问选定树型视图的时候我有一个数据绑定的TreeView?HOWTO从获取的SelectedItem的树型视图的TreeView

+0

1.这不是一个问题,如果你想分享知识棒格式。提出问题并**分开回答**。 2.你*真*不应该这样做(使用反射来访问私人成员)... – 2012-04-11 07:01:20

+0

如果使用反射或不是每个人都必须自己决定。我认为这并不总像你想象的那样糟糕。有些问题不能没有它来解决清洁(FE提供一个新的工具栏为Stylekeys其不支持开箱即用的控制 - >在公共符号的源代码中的注释让你甚至可以看到的是,解决方案MS的用途并不总是作为用户友好的,因为他们可能是因为管理决策) – SACO 2012-04-11 07:18:50

回答

-2

我发现了一个简单的方法来从即使树视图是数据绑定一个TreeView获得所选的TreeViewItem。关键是有点反思。

private static FieldInfo _selectedContainer = typeof(TreeView).GetField("_selectedContainer", BindingFlags.NonPublic | BindingFlags.Instance); 

public static TreeViewItem GetSelectedContainer(this TreeView treeView) 
{ 
    return (TreeViewItem)_selectedContainer.GetValue(treeView); 
} 

我希望这可以帮助别人。

+0

来自MS的官方方式:http://msdn.microsoft.com/en-us/library/ff407130.aspx – SACO 2012-04-11 07:52:57

+0

您的评论是不是真的有帮助。至少写出一个理由,而不是仅仅因为使用“反思”而投票。当你使用真正的大树时,人们会花费数小时的投入,因为正常解决方案的性能会变慢。默认树的行为并不总是你需要的。而不是直接写自己的控制,为什么不使用那里的可能性? – SACO 2012-04-11 12:44:53

+3

嗯,这显然是因为访问了一个框架类的私有成员是绝对的坏。当微软决定改变框架实施时,你的软件如何反应?如果你的软件已经交付给客户,会发生什么?或者,您是否可能创建了生产软件,并具有最低程度的稳健性。我强烈建议不要在此宣传您的简单质量要求。 – Clemens 2012-04-11 14:01:51

相关问题