我是WPF中的事件的问题。假设我有一个底层数据模型和一个树视图来呈现数据。我想做的最简单的事情是,当我点击一个项目时,我会对与该项目相关的基础数据做一些事情。
我尝试使用MouseLeftButtonDown
的{{1}}事件,但是发件人对象只是Textblock
本身,我无法访问基础数据。
现在我也尝试使用Textblock
这样的MouseLeftButtonDown
事件:
TreeViewItem
但我没有得到处理程序。
那我该怎么做呢?有某种标准方法吗?
答案 0 :(得分:5)
MouseLeftButtonDown事件是一个冒泡事件,它在我的猜测选择器的路径中被处理。 您可以使用snoop查看谁处理了该事件。 使用PreviewMouseLeftButtonDown / SelectedItemChanged或在您的情况下MouseDoubleClick将解决问题。
<TreeView>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="MouseDoubleClick"
Handler="itemDoubleClicked"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>