using System; using System.Collections.Generic; using System.Linq; using AntDesign.Forms; using AntDesign.Internal; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Forms; namespace AntDesign { public partial class Form : AntDomComponentBase, IForm { private readonly string _prefixCls = "ant-form"; [Parameter] public string Layout { get; set; } = FormLayout.Horizontal; [Parameter] public RenderFragment ChildContent { get; set; } [Parameter] public ColLayoutParam LabelCol { get; set; } [Parameter] public ColLayoutParam WrapperCol { get; set; } [Parameter] public string Size { get; set; } [Parameter] public TModel Model { get; set; } [Parameter] public bool Loading { get; set; } [Parameter] public EventCallback OnFinish { get; set; } [Parameter] public EventCallback OnFinishFailed { get; set; } public bool IsModified => _editContext.IsModified(); private EditContext _editContext; private IList _formItems = new List(); private IList _controls = new List(); ColLayoutParam IForm.WrapperCol => WrapperCol; ColLayoutParam IForm.LabelCol => LabelCol; EditContext IForm.EditContext => _editContext; string IForm.Size => Size; protected override void OnInitialized() { base.OnInitialized(); SetClass(); _editContext = new EditContext(Model); } protected void SetClass() { this.ClassMapper.Clear() .Add(_prefixCls) .Add($"{_prefixCls}-{Layout.ToLower()}") ; } public void HandleValidSubmit() { } public void Reset() { _controls.ForEach(item => item.Reset()); } void IForm.AddFormItem(IFormItem formItem) { _formItems.Add(formItem); } void IForm.AddControl(IControlValueAccessor valueAccessor) { this._controls.Add(valueAccessor); } public bool Validate() { return _editContext.Validate(); } } }