private void AddElementConfigurationRows(ICompositeElementViewModel group, IFormElementViewModel formElement) { switch (formElement) { case ButtonElementViewModel buttonElement: AddButtonConfigurationRows(group, buttonElement); break; case HtmlElementViewModel htmlElement: AddHtmlConfigurationRows(group, htmlElement); break; case CheckElementViewModel checkBox: AddCheckBoxConfigurationRows(group, checkBox); break; case TextElementViewModel textField: AddTextConfigurationRows(group, textField); break; case SelectElementViewModel comboBox: AddComboBoxConfigurationRows(group, comboBox); break; } }
private void OnEditElement(object sender, IFormElementViewModel e) { if (e is IControlElementViewModel controlElementViewModel) { FormElementEditorViewModel.FormElement = controlElementViewModel; ElementEditorViewModel = FormElementEditorViewModel; } else if (e is ICompositeElementViewModel compositeElementViewModel) { CompositeElementEditorViewModel.SelectedElement = compositeElementViewModel; ElementEditorViewModel = CompositeElementEditorViewModel; } }
public static IEnumerable <IFormElementViewModel> GetDescendants(this IFormElementViewModel element) { var elements = new List <IFormElementViewModel> { element }; if (element is ICompositeElementViewModel compositeElement) { elements.AddRange(compositeElement.Children.SelectMany(GetDescendants)); } return(elements); }