Пример #1
0
        /// <summary>
        /// 自动保存编辑内容
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        public void SaveEditer(object source, ElapsedEventArgs e)
        {
            if (InvokeRequired)
            {
                EventHandler <ElapsedEventArgs> handler = SaveEditer;
                Invoke(handler, source, e);
            }
            var value = ApplicationContext.GetParameterValue("autoSaveStyle", "关闭自动保存");

            if (value.Equals("直接保存"))
            {
                SaveEditCommand cmd = new SaveEditCommand {
                    HasPopForm = false
                };
                cmd.Execute(null);
                SaveTimer.Stop();
                SaveTimer.Start();
            }
            else if (value.Equals("弹框提示"))
            {
                SaveEditCommand cmd = new SaveEditCommand {
                    HasPopForm = true
                };
                cmd.Execute(null);
                SaveTimer.Stop();
                SaveTimer.Start();
            }
        }
Пример #2
0
        /// <summary>
        /// 订阅事件
        /// </summary>
        private void InitEvent()
        {
            var eventAggreator = ContainerManager.GetContainer().Resolve <IEventAggregator>();

            eventAggreator.Subscribe <StartStopEditEvent>(StartStopEdit);                       //订阅 启动停止编辑事件
            eventAggreator.Subscribe <TargetLayerChangedEvent>(TargetLayerChanged);             //订阅 当前编辑图层发生改变事件
            eventAggreator.Subscribe <ChangeActiveButtonEvent>(ChangeActiveButton);             //订阅 编辑工具栏当前功能按钮发生改变事件
            eventAggreator.Subscribe <ChangeButtonCheckedStateEvent>(ChangeButtonCheckedState); // 订阅 编辑工具栏中BarCheckItem的选中状态发生改变事件
            eventAggreator.Subscribe <ChangeBarCheckGroupEnableEvent>(ChangeButtonGroupEnable); //订阅 编辑工具栏中特定分组BarCheckItem的可用性发生改变事件
            //to do:save edits at regular time
            var value = ApplicationContext.GetParameterValue("autoSaveInterval", "3");

            _timer = new Timer(Convert.ToDouble(value) * 60000)
            {
                AutoReset = false
            };
            _timer.Elapsed += SaveEditer;
        }