/// <summary> /// Generates control fields /// </summary> /// <param name="source">The source.</param> /// <param name="classType">Type of the class.</param> /// <param name="method">The initialize method.</param> /// <param name="generateField">if set to <c>true</c> [generate field].</param> /// <returns></returns> public virtual CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod method, bool generateField) { SeriesPoint point = source as SeriesPoint; string typeName = point.GetType().Name; string name = "p_" + ElementGeneratorType.NameUniqueId; ElementGeneratorType.NameUniqueId++; /* * if (generateField) * { * CodeMemberField field = new CodeMemberField(typeName, name); * classType.Members.Add(field); * } */ CodeComment comment = new CodeComment(name + " point"); method.Statements.Add(new CodeCommentStatement(comment)); CodeExpression fieldReference = null; //if (!generateField) { fieldReference = new CodeVariableReferenceExpression(name); CodeTypeReference variableType = new CodeTypeReference(typeName); CodeVariableDeclarationStatement declaration = new CodeVariableDeclarationStatement(variableType, name); declaration.InitExpression = new CodeObjectCreateExpression(typeName); method.Statements.Add(declaration); } /* * else * { * fieldReference = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), name); * method.Statements.Add(new CodeAssignStatement(fieldReference, new CodeObjectCreateExpression(typeName))); * } */ CodeComHelper.GenerateField <float>(method, fieldReference, source, SeriesPoint.ArgumentProperty); CodeComHelper.GenerateField <float>(method, fieldReference, source, SeriesPoint.ValueProperty); return(fieldReference); }