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