有没有办法明确捕获TreeView项目上的点击?
目前,我处在一个电视代表用户选择菜单的位置。通常情况下,我只会在电视上使用 SelectedItemChanged 事件,但用户可能会连续两次重新点击一个项目,这不会引发此事件。我考虑了在包含每个节点中的项目的stackpanel上放置事件侦听器的想法,但问题是在节点上更改选定项目之前触发此事件。因此,如果您点击了stackpanel,您将获得该事件,但无法获得相关项目。关于如何摆脱这一点的任何想法?
答案 0 :(得分:3)
您可以处理MouseLeftButtonUp
的{{1}}事件。
TreeView
<强> [编辑] 强>
您可以处理private void treeView1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var selectedItem = treeView1.SelectedItem;
}
,但此时MouseLeftButtonDown
不会被更改。您可以做的是访问SelectedItem
以找出点击的元素。我使用e.OriginalSource
树检查了下面的示例,因此元素为<TreeViewItem />
。如果您尝试以下代码,请根据您的方案更改类型转换。
TextBlock