/// <summary>
        /// Generates control fields
        /// </summary>
        /// <param name="source">The source.</param>
        /// <param name="classType">Type of the class.</param>
        /// <param name="initMethod">The initialize method.</param>
        /// <param name="generateField">if set to <c>true</c> [generate field].</param>
        /// <returns></returns>
        public override CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod initMethod, bool generateField)
        {
            CodeExpression fieldReference = base.Generate(source, classType, initMethod, generateField);

            DataGridBoundColumn column = source as DataGridBoundColumn;

            CodeComHelper.GenerateTemplateStyleField(classType, initMethod, fieldReference, source, DataGridBoundColumn.ElementStyleProperty, ColumnName + "_e");

            Binding commandBindingExpr = column.Binding as Binding;

            if (commandBindingExpr != null)
            {
                GeneratedBindingsMode           generatedMode = (GeneratedBindingsMode)source.GetValue(GeneratedBindings.ModeProperty);
                CodeVariableReferenceExpression bindingVar    = CodeComHelper.GenerateBinding(initMethod, commandBindingExpr, ColumnName + "_b", generatedMode);

                var statement = new CodeAssignStatement(new CodeFieldReferenceExpression(fieldReference, "Binding"), bindingVar);
                initMethod.Statements.Add(statement);
            }

            return(fieldReference);
        }