Странная проблема с левой кнопкой мыши на Silverlight DataGrid - PullRequest
0 голосов
/ 15 сентября 2011

При работе с 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;

Так что я делаю не так? Что я забыл? Буду очень признателен за любую помощь:)

Марк

1 Ответ

1 голос
/ 15 сентября 2011

События кликов не всплывают. Если дочерний элемент управления помечает событие как обработано , оно останавливается.

В этом случае левый щелчок съедается ячейками DataGrid (для их выбора и / или выделения для редактирования элементов управления).

Правый щелчок не используется ячейками одинаково, поэтому распространяется до элемента управления DataGrid.

Заголовки столбцов достаточно хороши для распространения левого щелчка.

...