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