在我的wpf应用中,
我有两个视图和两个ViewModel,
当第一个ViewModel绑定到我的ContentControl时,根据我的ViewModel加载的第一个View和第一个View上的一个按钮已经聚焦,
当第二个ViewModel绑定到ContentControl时,第二个View根据第二个View加载,
当我回来并显示第一个ViewModel和View时,我想要关注已经聚焦的旧按钮,
public static IInputElement focusedelement;
public UCMainMenu()
{
InitializeComponent();
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
Keyboard.Focus( focusedelement);
}
private void UserControl_Unloaded(object sender, RoutedEventArgs e)
{
focusedelement = Keyboard.FocusedElement;
}
答案 0 :(得分:0)
在视图模型中创建bool IsFocused
属性,然后将数据绑定到相关控件的UIElement.IsFocused
property:
<Button IsFocused="{Binding IsFocused}" ... />
然后,只要您想要关注其中任何一个,只需在相关视图模型中将IsFocused
属性设置为true
:
IsFocused = true;
请注意,如果它已经是true
,则可能需要先将其设置为false
,然后再返回true
才能生效。< / p>