我在WPF应用程序中有一个 TreeView
,如下所示。
<TreeView x:Name="documentOutlinePanel">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="TreeViewItem.MouseLeftButtonDown" Handler="TreeViewItem_MouseLeftButtonDown"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
在代码后台文件中存在事件处理程序,以下是该处理程序的代码。
private void TreeViewItem_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
// some code.
}
我还在处理两个
HierarchicalDataTemplate
,用于TreeView
控件中可能出现的项。通过设置
TreeView
的ItemsSource
属性来绑定TreeView
的项。问题:
MouseLeftButtonDown
的处理程序根本没有执行。 我在此方法的处理程序开头设置了一个断点,但断点根本没有被命中。
但是需要注意的是:
PreviewMouseLeftButtonDown
会触发,我可以处理它(我不关心这个事件)有人能解释一下为什么
MouseLeftButtonDown
没有被触发吗?
有什么建议让它触发吗?更新:此问题与 MouseLeftButtonDown is not fired on TreeViewItem 不重复
我看到了那个问题和它的答案,但它并不适合我。以下是区别:
1.那个问题是针对SilverLigth的,而我的是针对WPF的。 2.那个问题是处理
TreeView.MouseLeftButtonDown
,而我的是处理TreeViewItem.MouseLeftButtonDown
。
3.我阅读了那个问题的答案,并没有帮助到我。