/// <summary>
        /// 引发 <see cref="RequestQuery" /> 事件
        /// </summary>
        public virtual string OnRequestQuery(bool resetCount = true)
        {
            if (!IsLoaded)
            {
                return("Query has been unloaded.");
            }

            var msg = CanQuery();

            if (msg.IsNullOrEmpty())
            {
                if (resetCount)
                {
                    CurrentAlternativeIndex = null;
                    QueryCount = 0;
                }
                else
                {
                    if (AlternativeDate.Count > 0)
                    {
                        var nindex = (CurrentAlternativeIndex ?? -1) + 1;
                        if (nindex >= AlternativeDate.Count)
                        {
                            CurrentAlternativeIndex = null;
                        }
                        else
                        {
                            CurrentAlternativeIndex = nindex;
                        }
                    }
                }
                RequestQuery?.Invoke(this, new GeneralEventArgs <bool>(resetCount));
            }

            return(msg);
        }