2011-05-28 97 views
0

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

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发射两次。我检查了下面的消息来源,发现它来自图像本身。我在处理完邮件后设置了e.Handled = true,即使我注意到我从第一次开始就收到e.Handled

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

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

请指教。

Regards,

John。

+0

你确切的一个bug,问题是? – ChrisWue 2011-05-28 07:34:21

+0

事件为什么发射两次?我应该如何防止它? – logeeks 2011-05-28 07:36:03

回答

1

我想也许你在worst place处理你的事件,它处理了2次,并与单羽绒事件它引发两个事件。

的foreach细胞加载不适合您的指定列
在其他地方尝试处理您的事件

+0

感谢您的建议...然后它应该发射3次。 – logeeks 2011-05-28 07:47:35

+1

可能是你处理你的'cellloaded事件'两次的 – Rev 2011-05-28 07:57:19

+0

是的,它会得到处理,因为有四列。我想只是将处理程序添加到单元格。如果有一个单元格处理程序,它将被替换。 – logeeks 2011-05-28 07:59:18