Как обнаружить щелчок по выбранной строке элемента управления RadGridView

Мое приложение WPF использует элемент управления Telerik RadGridView на нескольких экранах. У меня есть требование, согласно которому всякий раз, когда пользователь щелкает строку в RadGridView, я должен переключаться на другой экран и отображать подробную информацию об этой строке. Я подключил обработчик к событию SelectionChanged, и это работает, за исключением того, что ничего не происходит, если пользователь щелкает выбранную строку во второй раз. Это имеет смысл, так как выбранная строка не изменяется.

Как я могу обнаружить второй щелчок в той же строке и отобразить второй экран?

Тони


person Tony Vitabile    schedule 07.06.2012    source источник
comment
Вы нашли решение?   -  person jimmyjambles    schedule 09.06.2012


Ответы (2)


Вы можете просто прикрепить обработчик к событию MouseUp в GridView. Проверьте, есть ли какие-либо выбранные ячейки, и ответьте оттуда. Это сработает, даже если уже есть выбор.

Событие MouseDown будет срабатывать при щелчке мыши, но до того, как gridview обновит выбор, указатель мыши вверх должен срабатывать, когда выбор уже был скорректирован.

Вы также можете прикрепить обработчик к каждой отдельной ячейке в коде программной части следующим образом.

(this.GridView as RadGridView).AddHandler(  
     GridViewCell.MouseUpEvent,  
     new EventHandler<Telerik.Windows.RadRoutedEventArgs>(this.OnMouseUp)); 
person jimmyjambles    schedule 07.06.2012
comment
Присоединение к каждой отдельной ячейке позволит вам избежать обновления выбора, если сетка 2-го щелчка левой кнопкой мыши где-то за пределами ячейки, которая не привела к изменению выбора - person jimmyjambles; 07.06.2012
comment
Я совсем забыл об этом вопросе. Я реализовал обработчик событий MouseUp на формах, где это было необходимо. - person Tony Vitabile; 22.10.2013

Я думаю, вы можете попытаться добиться этого с помощью события MouseLeftButtonDown или события PreviewMouseLeftButtonDown.

person David Bekham    schedule 07.06.2012