示例#1
0
        internal StepV2 Clone()
        {
            StepV2 output = new StepV2();

            output.Action = this.Action.Clone();
            //foreach (var coc in this.CutOffConditions)
            //{
            //    CutOffCondition newcoc = coc.Clone();
            //    output.CutOffConditions.Add(newcoc);
            //}
            foreach (var cob in this.CutOffBehaviors)
            {
                CutOffBehavior newcob = cob.Clone();
                output.CutOffBehaviors.Add(newcob);
            }
            foreach (var protection in this.Protections)
            {
                var newprotection = protection.Clone();
                output.Protections.Add(newprotection);
            }
            output.Index      = this.Index;
            output.Loop1Label = this.Loop1Label;
            output.Loop2Label = this.Loop2Label;
            return(output);
        }
        public readonly CutOffBehavior _cob; //为了将其添加到Program里面去(见ProgramViewModel Add),不得不开放给viewmodel。以后再想想有没有别的办法。

        #endregion                           // Fields

        #region Constructor

        public CutOffBehaviorViewModel(CutOffBehavior cob)
        {
            _cob = cob;
            _cob.PropertyChanged += _cob_PropertyChanged;
            //CreateCondition();
            CreateJPBs();
        }
        private CutOffBehavior ConvertCOC2COB(CutOffCondition coc)
        {
            CutOffBehavior cob = new CutOffBehavior();

            cob.Condition.Parameter = coc.Parameter;
            cob.Condition.Mark      = coc.Mark;
            cob.Condition.Value     = coc.Value;
            JumpBehavior jpb = new JumpBehavior();

            jpb.JumpType = coc.JumpType;
            jpb.Index    = coc.Index;
            cob.JumpBehaviors.Add(jpb);
            return(cob);
        }