/// <summary>
        /// Handles when the selected objects have changed.
        /// </summary>
        void UpdateSelection()
        {
            // Notify that the collection has changed
            ChangeSelected();

            if (SelectedChanged != null)
            {
                SelectedChanged.Raise(this, EventArgs.Empty);
            }

            // Ensure the focused object is valid
            if (Focused == null || !_selectedObjs.Contains(Focused))
            {
                Focused = _selectedObjs.FirstOrDefault();
            }
        }