private void AddTextCell(TextItemBindingDescriptor binding) { if (binding.TextTemplate.TemplateName == nameof(ReadOnlyControlTemplateSelector.TextTemplate) || binding.TextTemplate.TemplateName == nameof(ReadOnlyControlTemplateSelector.PasswordTemplate) || binding.TextTemplate.TemplateName == nameof(ReadOnlyControlTemplateSelector.DateTemplate)) { Properties.Add(CreateTextFieldReadOnlyObject(binding)); } else if (binding.TextTemplate.TemplateName == nameof(ReadOnlyControlTemplateSelector.HiddenTemplate)) { Properties.Add(CreateHiddenReadOnlyObject(binding)); } else if (binding.TextTemplate.TemplateName == nameof(ReadOnlyControlTemplateSelector.CheckboxTemplate)) { Properties.Add(CreateCheckboxReadOnlyObject(binding)); } else if (binding.TextTemplate.TemplateName == nameof(ReadOnlyControlTemplateSelector.SwitchTemplate)) { Properties.Add(CreateSwitchReadOnlyObject(binding)); } else { throw new ArgumentException($"{nameof(binding.TextTemplate.TemplateName)}: C858796C-6625-43A4-AA56-DC131036FDFD"); } }
private IReadOnly CreateHiddenReadOnlyObject(TextItemBindingDescriptor binding) => (IReadOnly)Activator.CreateInstance ( typeof(HiddenReadOnlyObject <>).MakeGenericType(GetModelFieldType(binding.Property)), binding.Property, binding.TextTemplate.TemplateName, this.contextProvider );
private IReadOnly CreateCheckboxReadOnlyObject(TextItemBindingDescriptor binding) => (IReadOnly)Activator.CreateInstance ( typeof(CheckboxReadOnlyObject), binding.Property, binding.TextTemplate.TemplateName, binding.Title, this.contextProvider );