MouseLeftButtonDown事件触发两次

时间:2011-05-28 07:29:31

标签: c# .net wpf

我在xaml中有一个网格,其中包含一行中的图像/文本块/按钮。为了响应单击行,我在cs文件中添加了以下代码。

 this.radFilestoPrint.CellLoaded += new EventHandler<Telerik.Windows.Controls.GridView.CellEventArgs>(filesToPrintGrid_CellLoaded);

 void filesToPrintGrid_CellLoaded(object sender, Telerik.Windows.Controls.GridView.CellEventArgs e)
        {
            if (e.Cell.Column != radFilestoPrint.Columns[4] && e.Cell.Column != radFilestoPrint.Columns[5])
            {
                e.Cell.AddHandler(GridViewCell.MouseLeftButtonDownEvent, new MouseButtonEventHandler(radFilestoPrint_MouseDoubleClick), true);
            }
        }

现在的问题是,mousedownevent发射了两次。我检查了消息的来源如下,发现它来自Image本身。我在处理完邮件后设置e.Handled = true,即使我注意到我从第一次开始接收e.Handled为真。

  if (((FrameworkElement)e.Source).GetType() != typeof(System.Windows.Controls.Image))
  {
       return;    
  }

为什么事件会发射两次?我应该如何预防?

请建议。

此致

约翰。

2 个答案:

答案 0 :(得分:1)

我想也许你可以在worst place处理你的事件并且它处理2次并且在单个Down事件中它会触发两个事件。

  

加载的foreach单元格不适用于指定的列
  尝试在其他地方处理事件

答案 1 :(得分:-1)

我相信这是WPF中的一个错误

http://forums.silverlight.net/forums/p/29101/95353.aspx