private static void BeginSetFocus([NotNull] this ItemsControl selector, [CanBeNull] object selectedItem) { selector.BeginInvoke(() => { var container = selector.ItemContainerGenerator.ContainerFromItem(selectedItem) as FrameworkElement; if (container == null) { return; } var child = container.VisualDescendantsAndSelf().OfType <UIElement>().FirstOrDefault(item => item.Focusable); child?.Focus(); }); }