Exemple #1
0
        /// <summary>
        /// 退出当前界面
        /// </summary>
        /// <param name="dmGuid"></param>
        /// <param name="timeout"></param>
        public static void ExitCurrentView(string dmGuid, TimeSpan timeout)
        {
            IWlyUIView current = null;
            var        wait    = FlowLogicHelper.RepeatRun(() =>
            {
                foreach (var v in _viewList)
                {
                    if (v.IsCurrentView(dmGuid))
                    {
                        current = v;
                        return(true);
                    }
                }

                return(false);
            }, timeout);

            if (!wait)
            {
                throw new InvalidOperationException("无法确定当前所属界面");
            }

            wait = FlowLogicHelper.RepeatRun(() =>
            {
                if (current.IsCurrentView(dmGuid))
                {
                    current.Exit(dmGuid);
                    Thread.Sleep(400);
                    return(false);
                }

                return(true);
            }, timeout);
            if (!wait)
            {
                throw new InvalidOperationException("无法从当前界面退出");
            }
        }