void OnUpdateChildParamType(MethodInvokeParameterControl ctrl, CodeDomNode.VariableType newType) { // 类型改变,重新创建TemplateClass; var param = CSParam as ReturnCustomConstructParam; if (param.ShowPropertyType == ReturnCustomConstructParam.enShowPropertyType.ReturnValue) { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(param.MethodInfo.OutParams.Count); foreach (var methodParam in param.MethodInfo.OutParams) { var paramType = methodParam.ParamType.GetActualType(); if (Program.IsTypeValidInPropertyGridShow(paramType)) { var infoAssist = new MethodParamInfoAssist() { FieldDirection = System.CodeDom.FieldDirection.Out, IsParamsArray = false, ParameterType = paramType, ParamName = methodParam.ParamName, }; var cpInfo = Program.GetFromParamInfo(infoAssist); cpInfos.Add(cpInfo); } } var tempClass = mTemplateClassInstance; if (tempClass != null) { var oldTempClassType = tempClass.GetType(); CreateTemplateClass(cpInfos); foreach (var pro in mTemplateClassInstance.GetType().GetProperties()) { var oldPro = oldTempClassType.GetProperty(pro.Name); if (oldPro == null || oldPro.PropertyType != pro.PropertyType) { continue; } pro.SetValue(mTemplateClassInstance, oldPro.GetValue(tempClass)); } } } }
public void OnVariableTypeChanged(CodeDomNode.VariableType variableType) { OnProcessTypeChanged?.Invoke(variableType); }
partial void ChangeValueType_WPF(CodeDomNode.VariableType varType) { }