如何解决捕获单击TreeView项目
| 有没有一种方法可以明确捕获对TreeView项的单击? 目前,我在电视上代表用户一种选项菜单的位置。通常,我只会在电视上使用SelectedItemChanged事件,但是用户可能会连续两次单击某个项目,但这不会引发此事件。我考虑过将事件侦听器放在每个节点上包含项目的堆栈面板上的想法,但是问题是此事件在节点上选定项目更改之前触发。因此,如果您按下堆栈面板,则将获得事件,但将无法获得关联的项目。关于如何摆脱这一想法?解决方法
您可以为
TreeView
处理MouseLeftButtonUp
事件。
private void treeView1_MouseLeftButtonUp(object sender,MouseButtonEventArgs e)
{
var selectedItem = treeView1.SelectedItem;
}
[编辑]
您可以处理MouseLeftButtonDown
,但SelectedItem
此时仍不会更改。您可以访问ѭ5来找出单击了哪个元素。我用the6ѭ的树检查了下面的示例,因此元素为TextBlock
。如果您尝试下面的代码,请根据您的情况更改类型转换。
public MainPage()
{
InitializeComponent();
treeView1.AddHandler(MouseLeftButtonDownEvent,new MouseButtonEventHandler(treeView1_MouseLeftButtonDown),true);
}
private void treeView1_MouseLeftButtonDown(object sender,MouseButtonEventArgs e)
{
var selectedElement = (TextBlock)e.OriginalSource;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。