public void AddStep(MenuItem Item) { String TagStr = Item.Tag.ToString(); String StepName = Item.Header.ToString(); int StepID = 0; int.TryParse(TagStr, out StepID); LogicStepScreen vm = GetViewModel(TagStr); if (vm == null) { M_ConfirmEvent(null, new T_LogicStep() { Name = StepName, StepID = StepID, StepEnum = (LogicStepEnum)Convert.ToByte(TagStr) }); } else if (vm is LogicStepScreen m) { m.ConfirmEvent += M_ConfirmEvent; m.Name = StepName; m.StepID = StepID; windowManager.ShowDialog(vm); } }
private LogicStepScreen GetViewModel(String IndexStr) { LogicStepScreen vm = null; LogicStepEnum stepEnum = (LogicStepEnum)Convert.ToByte(IndexStr); switch (stepEnum) { case LogicStepEnum.InitAll: case LogicStepEnum.InitZ: case LogicStepEnum.InitS: { break; } case LogicStepEnum.Alert: { vm = IoC.Get <MessageViewModel>(); // break; } case LogicStepEnum.Delay: { vm = IoC.Get <Time_lapseViewModel>(); break; } case LogicStepEnum.TimerStart: { vm = IoC.Get <TimingViewModel>(); break; } case LogicStepEnum.WaitTimer: { vm = IoC.Get <WaitTimingViewModel>(); break; } case LogicStepEnum.LoopStart: { vm = IoC.Get <LoopViewModel>(); break; } case LogicStepEnum.LoopEnd: { vm = IoC.Get <LoopEndViewModel>(); break; } case LogicStepEnum.SubFunc: { vm = IoC.Get <SubFuncViewModel>(); break; } case LogicStepEnum.Hex: { vm = IoC.Get <HexViewModel>(); break; } case LogicStepEnum.OutTip: { vm = IoC.Get <UploadTipViewModel>(); break; } case LogicStepEnum.TakeTip: { vm = IoC.Get <TakeTipViewModel>(); break; } case LogicStepEnum.MoveXY: { vm = IoC.Get <XYMoveViewModel>(); break; } case LogicStepEnum.MoveZ: { vm = IoC.Get <ZMoveViewModel>(); break; } case LogicStepEnum.SimpleAction: { vm = IoC.Get <ActionViewModel>(); break; } case LogicStepEnum.DetectSquid: { vm = IoC.Get <LiquidLevelDetectViewModel>(); break; } case LogicStepEnum.ZBySquid: { vm = IoC.Get <ZLiquidLevelMoveViewModel>(); break; } case LogicStepEnum.FixedIn: { vm = IoC.Get <FixedAbsorbViewModel>(); break; } case LogicStepEnum.FixedOut: { vm = IoC.Get <FixedDivideViewModel>(); break; } case LogicStepEnum.TakeGel: case LogicStepEnum.PutDownGel: { vm = IoC.Get <TakeGELViewModel>(); break; } //case "21": // { // vm = IoC.Get<PutGELViewModel>(); // break; // } case LogicStepEnum.Piercer: { vm = IoC.Get <PierceViewModel>(); break; } case LogicStepEnum.Centrifuge: { vm = IoC.Get <CentrifugeViewModel>(); break; } case LogicStepEnum.GelWarehouse: { vm = IoC.Get <GelWarehouseViewModel>(); break; } case LogicStepEnum.Couveuse: { vm = IoC.Get <HatcherViewModel>(); break; } case LogicStepEnum.TakeAndPutDownGel: { vm = IoC.Get <TakeAndPutGelViewModel>(); break; } } if (vm is LogicStepScreen lgvm) { lgvm.StepEnum = stepEnum; } return(vm); }