如何检测双击列表视图滚动条?

11 wpf listview scrollbar double-click

我在WPF上有两个列表视图.第一个listview加载了Datatable.双击第一个列表视图中的一个项目时,selectedItem将移动到第二个列表视图.

由于从DataTable加载了大量元素,因此在第一个列表视图中出现滚动条时会出现问题.如果选择一个项目并双击滚动条向下箭头,则会启动MouseDoubleClick事件,并将所选项目移动到第二个列表视图.

如何检测滚动条上的双击以防止这种情况?

非常感谢!

Chr*_*nes 5

我测试了上面的代码,这非常有帮助,但是发现下面的代码更稳定,因为有时您实际上双击一个项目时,有时会将源报告为GridViewRowPresenter。

var src = VisualTreeHelper.GetParent((DependencyObject)e.OriginalSource);
var srcType = src.GetType();
if (srcType == typeof(ListViewItem) || srcType == typeof(GridViewRowPresenter))
{
    // Your logic here
}
Run Code Online (Sandbox Code Playgroud)


小智 3

在第一个列表视图上的 MouseDoubleClick 事件中尝试此操作:

DependencyObject src = VisualTreeHelper.GetParent((DependencyObject)e.OriginalSource);

if(src is Control && src.GetType() == typeof(ListViewItem))
{
    // Your logic here
}
Run Code Online (Sandbox Code Playgroud)

基于

我在各种项目中使用它,它解决了您面临的问题。