private void OnFocusedElementLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
if (focusedElement != null) focusedElement.LostKeyboardFocus -= OnFocusedElementLostKeyboardFocus;
focusedElement = Keyboard.FocusedElement;
if (focusedElement != null)
{
focusedElement.LostKeyboardFocus += OnFocusedElementLostKeyboardFocus;
if ((IsEditable) &&
(Items.Contains(ItemContainerGenerator.ItemFromContainer(Keyboard.FocusedElement as DependencyObject))))
{
SelectedItem = ItemContainerGenerator.ItemFromContainer(Keyboard.FocusedElement as DependencyObject);
}
}
}