捕获单击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;
}
    

要回复问题请先登录注册