/// <summary>
        /// Called on each root vertex change.
        /// </summary>
        /// <param name="args"><see cref="EventArgs.Empty"/>.</param>
        protected virtual void OnRootVertexChanged([NotNull] EventArgs args)
        {
            if (args is null)
            {
                throw new ArgumentNullException(nameof(args));
            }

            RootVertexChanged?.Invoke(this, args);
        }
        /// <summary>
        /// Called on each root vertex change.
        /// </summary>
        /// <param name="args"><see cref="F:EventArgs.Empty"/>.</param>
        protected virtual void OnRootVertexChanged([NotNull] EventArgs args)
        {
            Debug.Assert(args != null);

            RootVertexChanged?.Invoke(this, args);
        }