Получить и установить фокус элемента - PullRequest
0 голосов
/ 27 сентября 2011

То, что я пытаюсь сделать, это получить последний элемент фокуса перед обновлением моего BO и вернуть его к последнему значению фокуса.

идея примерно такая:

//get last focus element
var x = Keyboard.FocusedElement;
//refresh my businessobject here
CallMethod();
//set the focus to my last element
FocusManager.SetFocusedElement(focusScope, x);

... но проблема здесь в том, что после вызова метода объекта обновления мое значение "x" изменилось в процессе.

Кто-нибудь сталкивался с этой проблемой?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2011

Почему бы не использовать метод Focus() ??

//get focused element
UIElement x = Keyboard.FocusedElement as UIElement;

//refresh my businessobject here
CallMethod();

//set the focus to my last element
x.Focus();

или рассмотрите возможность использования FocusManager.GetFocusedElement(focusScope) ...

0 голосов
/ 27 сентября 2011

Вы не можете просто назначить Keyboard.FocusedElement, потому что Keyboard.FocusedElement является ссылочным типом. Поэтому, как только Framework изменит Keyboard.FocusedElement, ваша копия изменится. Вам нужно будет найти новый способ определения элемента управления, на котором фокусировался перед вызовом, или попытаться найти решение для глубокого копирования, которое работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...