public static Dictionary <string, BaseStragClass <T> > Init_StragList <T>() where T : TimeSerialData { Dictionary <string, BaseStragClass <T> > AllStragList = new Dictionary <string, BaseStragClass <T> >(); try { string stragList = GlobalClass.ReReadStragList(); if (stragList == null || stragList.Trim().Length == 0) { ToLog("策略列表", "为空!"); return(AllStragList); } List <BaseStragClass <T> > list = BaseStragClass <T> .getObjectListByXml <BaseStragClass <T> >(stragList); //StragClass.getStragsByXml(stragList); if (list == null) { return(AllStragList); } AllStragList = list.ToDictionary(t => t.GUID, v => v); ToLog("策略列表", AllStragList.Count.ToString()); return(AllStragList); } catch (Exception ce) { ToLog("策略列表错误", ce.StackTrace); return(AllStragList); } }
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value) { if (provider != null) { this.editorService = provider.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService; } if (this.editorService != null) { AllList = BaseStragClass <TimeSerialData> .getObjectListByXml <BaseStragClass <TimeSerialData> >(GlobalClass.ReReadStragList()); AllPlans = StragRunPlanClass <TimeSerialData> .getObjectListByXml <StragRunPlanClass <TimeSerialData> >(GlobalClass.getStragRunningPlan(true)).ToDictionary(t => t.GUID, t => t); List <BaseStragClass <TimeSerialData> > list = AllList.Where(t => AllPlans.ContainsKey(t.GUID) == false).ToList <BaseStragClass <TimeSerialData> >(); List <StragClass> list1 = new List <StragClass>(); list.ForEach(a => { //list1.Add(ConvertionExtensions.ConvertTo<StragClass>(a as IConvertible)); StragClass sc = a as StragClass; list1.Add(sc); }); picker = new StragPicker(list1);//支持一组合对多相同策略 editorService.ShowDialog(picker); if (picker.SelectedStrag == null) { value = null; } else { value = picker.SelectedStrag; //picker.Hide(); } ////if (value == null) ////{ //// picker.Show(); //// picker.Visible = true; ////} ////else ////{ ////} } return(value); }