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