在Silverlight数据网格上左键点击会出现奇怪的问题



我在使用Silverlights DataGrid时遇到了一些非常奇怪的鼠标事件行为:

我想做的是当用户在DataGrid上左键单击时调用一些方法。这应该不是什么大问题,但是……

public void doLeftClick (object sender, MouseButtonEventArgs e) {
    // some code
}

我正在定义EventHandler和

myDataGrid.MouseLeftButtonDown += doLeftClick;

我将它附加到事件。

这样做的结果是,doLeftClick方法只有在我左键单击DataGrid的一列时才会被调用!

当我做与上面完全相同的代码时,只右键单击而不是左键单击EventHandler每次我右键单击DataGrid时都会被调用,无论鼠标光标在哪里,只要它在控件的边界内(这是我实际需要的左键单击以及我期望从此设置中得到的行为):

public void doRightClick (object sender, MouseButtonEventArgs e) {
    // some code
}
myDatagrid.MouseRightButtonDown += doRightClick;

我做错了什么?我忘了什么?我真的很感激你的帮助:)

Marc

点击事件不冒泡。如果子控件将事件标记为已处理,它将停止。

在这种情况下,左键被DataGrid单元格吞噬(为了选择它们和/或给编辑控件焦点)。

单元格不以相同的方式使用右键,因此向上传播到DataGrid控件。

列标头足够好,允许左键点击传播。

相关内容

  • 没有找到相关文章

最新更新