我们如何在WPF应用程序中单击并双击listview?

时间:2017-01-30 10:54:32

标签: c# wpf

我有一个WPF应用程序。有一个列表视图,每次单击或双击时,点击事件都会激活。即使我保留Click事件,当我双击它时它会自动激活。如果我在DoubleClick中绑定操作,则无法单击一下。

我如何单独处理?

3 个答案:

答案 0 :(得分:0)

为您的控件添加处理程序:

private void MyMouseHandler(object sender, MouseButtonEventArgs e)
{
    if (e.ClickCount == 2)
    {
        //Handle here
    }
}

处理程序代码:

<span id = "referralValue">
  <input type="number" name="value" value="0.00">
</span>

答案 1 :(得分:0)

请尝试以下代码段:

     if (e.ChangedButton == MouseButton.Left && e.ClickCount == 2) {
        // your logic here
    }

有关详细信息,请在MSDN上尝试此link

答案 2 :(得分:0)

双击的第二次点击是按照定义始终,然后单击一下。

如果您不想处理它,您可以使用计时器等待200毫秒,看看在实际处理事件之前是否还有其他点击:

public partial class MainWindow : Window
{
    System.Windows.Threading.DispatcherTimer _timer = new System.Windows.Threading.DispatcherTimer();
    public MainWindow()
    {
        InitializeComponent();
        _timer.Interval = TimeSpan.FromSeconds(0.2); //wait for the other click for 200ms
        _timer.Tick += _timer_Tick;
    }

    private void lv_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        if(e.ClickCount == 2)
        {
            _timer.Stop();
            System.Diagnostics.Debug.WriteLine("double click"); //handle the double click event here...
        }
        else
        {
            _timer.Start();
        }
    }

    private void _timer_Tick(object sender, EventArgs e)
    {
        System.Diagnostics.Debug.WriteLine("click"); //handle the Click event here...
        _timer.Stop();
    }
}
<ListView PreviewMouseLeftButtonDown="lv_PreviewMouseLeftButtonDown" ... />