2011-12-27 5 views
0

Есть ли способ в silverlight определить, когда происходит событие потерянного фокуса, если это происходит, потому что нажата клавиша табуляции или пользователь нажимает кнопку мыши на другой контроль.Silverlight обнаруживает, что потерять фокус - это то, что нажата кнопка или нажата мышь.

Это то, что я хочу добиться:

У меня есть RadGridView с 1 ​​ряда. В последнем столбце у меня есть числовой ввод, когда пользователь выходит из этого элемента управления, новая строка должна быть добавлена ​​к исходному набору в режиме просмотра, это автоматически добавляет новую строку в сетку, затем первый столбец в этой строке должен быть сфокусирован, и раскрывающийся список в celledittemplate должен быть открыт.

Когда я использую событие потерянного фокуса, добавление новой строки отлично работает, хотя это также работает, когда я не использую вкладку, чтобы не фокусировать элемент управления. Кроме того, первый столбец в новой строке не выбран, он каким-то образом дает фокус для строки 0 столбца 0.

+0

Thomas, вы уменьшили мои принятые точки решения, как вы приняли свое решение? Я думаю, вы должны обновить вопрос, чтобы добавить ответ. – codeSetter

ответ

2

Хорошо, воодушевленный ответом Дипак дал мне немного другое решение, Я обработал сеансы Keydown и Keyup от Gridviews, keydown устанавливает bool в true, keyup to false.

последовательность выполнения, к счастью, это keydown, lostfocus, keyup поэтому в случае потерянного фокуса мне нужно только проверить, верно ли bool; Как ни странно, событие keyup не всегда срабатывает, но поскольку потерянный фокус равен , я также установил bool на false.

+0

Я думаю, что это работает, но нужно подождать, пока кто-то предложит более элегантный способ. – codeSetter

+0

Вы правы, поскольку продукт, который мы создаем, должен быть закончен очень скоро, я просто сделаю это сейчас. – Thomas

1

да, вы можете проследить его, если вы внедрили мышь вверх/вниз по каждому фокусируемому элементу на экране , У вас будет флаг, чтобы проверить, что событие просмотра мыши вверх/вниз происходит на любом элементе, если не тогда его клавиша TAB, которая вызывает потерянный фокус.

Это работа, если кто-то не предлагает правильное решение.

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