我要做的是在对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”值在此过程中被更改了。
有人遇到过这个问题吗?
答案 0 :(得分:0)
您不能只指定Keyboard.FocusedElement
,因为Keyboard.FocusedElement
是参考类型。因此,只要框架更改Keyboard.FocusedElement
,您的副本就会更改。您需要找到一种新方法来识别在调用之前具有焦点的控件,或者尝试找到有效的深层复制解决方案。
答案 1 :(得分:0)
为什么不使用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)
...