Example #1
0
        public override void Generate(Dictionary <IGeneratorArea, IGeneratorLayout> areaLayouts, IList <IGeneratorPage> pageList, IGeneratorDesign design, int indentation, IGeneratorPage currentPage, IGeneratorObject currentObject, IGeneratorColorTheme colorTheme, StreamWriter xamlWriter, string visibilityBinding)
        {
            string Indentation          = GeneratorLayout.IndentationString(indentation);
            string AttachedProperties   = GetAttachedProperties();
            string StatePanelProperties = GetPanelProperties(currentPage, currentObject);
            string ElementProperties    = GetElementProperties(currentPage, currentObject);

            colorTheme.WriteXamlLine(xamlWriter, $"{Indentation}<Grid{AttachedProperties}{visibilityBinding}{StatePanelProperties}{ElementProperties}>");

            List <string> Parameters = new List <string>();

            for (int i = 0; i < Items.Count; i++)
            {
                Parameters.Add(i.ToString());
            }

            IGeneratorObjectPropertyIndex IndexObjectProperty = Component.IndexObjectProperty;
            int Index = 0;

            foreach (IGeneratorLayoutElement Element in Items)
            {
                string IndexReference    = Component.GetObjectBinding(currentObject, Component.IndexObject, Component.IndexObjectProperty);
                string VisibilityBinding = $" Visibility=\"{{Binding {IndexReference}, Converter={{StaticResource convIndexToVisibility}}, ConverterParameter={Parameters[Index++]}}}\"";
                Element.Generate(areaLayouts, pageList, design, indentation + 1, currentPage, currentObject, colorTheme, xamlWriter, VisibilityBinding);
            }

            colorTheme.WriteXamlLine(xamlWriter, $"{Indentation}</Grid>");
        }
Example #2
0
        public override bool Connect(IGeneratorDomain domain)
        {
            bool IsConnected = false;

            if (IndexObject == null || IndexObjectProperty == null)
            {
                IsConnected         = true;
                IndexObject         = GeneratorObject.GeneratorObjectMap[BaseIndex.IndexObject];
                IndexObjectProperty = (IGeneratorObjectPropertyIndex)GeneratorObjectProperty.GeneratorObjectPropertyMap[BaseIndex.IndexObjectProperty];
            }

            return(IsConnected);
        }