左键单击Silverlight DataGrid时出现奇怪的问题

时间:2011-09-15 13:52:38

标签: silverlight datagrid event-handling mouseleftbuttondown

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

我想要做的只是在用户左键单击我的DataGrid时调用某个方法。那应该不是什么大问题,但是......

使用

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

我正在定义EventHandler并使用

myDataGrid.MouseLeftButtonDown += doLeftClick;

我将它附加到活动中。

结果是只有在我的DataGrid的一列上单击鼠标左键时才会调用doLeftClick方法!

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

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

myDatagrid.MouseRightButtonDown += doRightClick;

那么我做错了什么?我忘记了什么? 我真的很感激任何帮助:)

马克

1 个答案:

答案 0 :(得分:1)

点击事件未冒泡。如果子控件将事件标记为处理,则会停止。

在这种情况下,DataGrid单元格正在使用左键单击(为了选择它们和/或将焦点放在编辑控件上)。

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

列标题非常好,可以让左键单击传播。