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>"); }
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); }