private void UpdateFields( FormDefinition formDefinition, INZazuWpfFieldFactory fieldFactory, IResolveLayout resolveLayout) { Dispose(); DisposeChecks(); // make sure at least the minimum is set for render the layout if (formDefinition?.Fields == null) { return; } CreateFields(formDefinition.Fields, fieldFactory); if (formDefinition.Checks != null) { CreateFormChecks(formDefinition.Checks, fieldFactory.Resolve <ICheckFactory>()); } var layout = resolveLayout.Resolve(formDefinition.Layout); var parentFields = FormDefinition.Fields.Select(fd => GetField(fd.Key)); layout.DoLayout(Layout, parentFields, resolveLayout); this.SetFieldValues(FormData.Values); SetReadOnly(IsReadOnly); }
private INZazuWpfLayoutStrategy SafeResolve(IResolveLayout resolveLayout, string name) { if (resolveLayout == null) { return(this); } var layout = resolveLayout.Resolve(name); return(layout ?? this); }