private IReadOnly CreateMultiSelectReadOnlyObject(MultiSelectItemBindingDescriptor binding)
        {
            Type type = GetModelFieldType(binding.Property);

            if (!type.IsList())
            {
                throw new ArgumentException($"{nameof(type)}: 4F67CC2A-21B8-49B4-BFC2-4D949518AB34");
            }

            return(GetValidatable(type.GetUnderlyingElementType()));

            IReadOnly GetValidatable(Type elementType)
            => (IReadOnly)Activator.CreateInstance
            (
                typeof(MultiSelectReadOnlyObject <,>).MakeGenericType
                (
                    typeof(ObservableCollection <>).MakeGenericType(elementType),
                    elementType
                ),
                binding.Property,
                binding.KeyFields,
                binding.Title,
                binding.StringFormat,
                binding.MultiSelectTemplate,
                this.contextProvider
            );
        }
 private void AddMultiSelectCell(MultiSelectItemBindingDescriptor binding)
 => Properties.Add(CreateMultiSelectReadOnlyObject(binding));