protected override void OnIsKeyboardFocusWithinChanged(DependencyPropertyChangedEventArgs e) { base.OnIsKeyboardFocusWithinChanged(e); if (IsKeyboardFocusWithin && !IsSelected) { // If an item within us got focus (probably programatically), we need to become selected IsSelected = true; } }