Restaurer le focus en WPF

Si vous désirez sauver et restaurer le focus en WPF (en interagissant avec un third party par exemple) vous pouvez utiliser:

public void SetSelectedItem(object SelectedItem)
{
// Sauvegarde le focus actuel
IInputElement focusedElement = Keyboard.FocusedElement;
 
// Here, do the third party interaction, like in mvvm:
Items.Where(p=>p.Id == SelectedItem.Id).IsSelected = true; // changes the focus
 
// Restaure le focus sauvegardé
if (focusedElement != null && Keyboard.FocusedElement != focusedElement)
        Keyboard.Focus(focusedElement);
}