2012-06-07 4 views
1

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

Как определить второй щелчок по той же строке и отобразить второй экран?

Тони

+0

Вы нашли решение? – jimmyjambles

ответ

2

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

Событие MouseDown будет срабатывать на мыши, но до GridView обновлений выделенной части, мыши вверх должен срабатывать, когда выбор уже скорректированной

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

(this.GridView as RadGridView).AddHandler( 
    GridViewCell.MouseUpEvent, 
    new EventHandler<Telerik.Windows.RadRoutedEventArgs>(this.OnMouseUp)); 
+0

Прикрепление к каждой отдельной ячейке позволит вам избежать обновления выбора, если сетка 2-го левого клика, где-то вне ячейки, которая не вызывала изменения выбора. – jimmyjambles

+0

Я полностью забыл об этом вопросе. Я применил обработчик событий MouseUp для форм, где это было необходимо. –

0

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

Смежные вопросы