예제 #1
0
        public bool BindingRoot(BindingRootNode bindingRootNode, Parameters parameters, Context context)
        {
            if (bindingRootNode.Name != null)
            {
                var bindingContainerBuilder = new StringBuilder();
                var externalAliases         = new HashSet <string>();
                if (this.VisitChildBindings(bindingRootNode.Bindings, parameters, new Context(bindingContainerBuilder, externalAliases, context, bindingRootNode.HasCodeBehind)))
                {
                    context.BindingContainerInfos.Add(new BindingContainerInfo(parameters.BindingRootNodeTypes[bindingRootNode], bindingRootNode.NamespaceQualifiedType, bindingContainerBuilder, externalAliases));
                    return(true);
                }
            }

            return(false);
        }
        public bool BindingRoot(BindingRootNode bindingRootNode, Parameters parameters, Context context)
        {
            if (bindingRootNode.Name != null)
            {
                var xamlModificationTracker = new XamlModificationTracker {
                    ModificationsRootElement = bindingRootNode.XElement
                };
                if (this.VisitChildBindings(bindingRootNode.Bindings, parameters, new Context(xamlModificationTracker, context)))
                {
                    var bindingContainerType = new QualifiedType(QualifiedType.GlobalAlias, parameters.AssemblyName, parameters.Namespace, bindingRootNode.Name + BindingContainer);
                    context.BindingRootTypes.Add(bindingRootNode, bindingContainerType);
                    context.XamlModificationInfos.Add(new XamlModificationInfo(bindingContainerType, xamlModificationTracker.ModificationsRootElement, xamlModificationTracker.XamlModifications));
                    context.XamlElementNameProvider.Reset();
                    return(true);
                }
            }

            context.XamlElementNameProvider.Reset();
            return(false);
        }
 public void BindingRoot(BindingRootNode bindingRootNode, StringBuilder stringBuilder, int indent)
 {
     PrivateVisit(stringBuilder, indent, bindingRootNode, bindingRootNode.Bindings);
 }