private bool _raiseSelectionChange(BplClass[] newClasses, BplClass[] oldClasses) { var handler1 = SelectedClassesChanging; var handler2 = SelectedClassesChanged; if (newClasses.Length > 0 || oldClasses.Length > 0) { if (handler1 != null) { handler1(this, EventArgs.Empty); } newClasses.Apply(c => _selectedClasses.Add(c)); oldClasses.Apply(c => _selectedClasses.Remove(c)); if (handler2 != null) { handler2(this, new ClassSelectionEventArgs(newClasses, oldClasses)); } _refreshFocus(); return true; } else { return false; } }