/// <summary> /// Converte o widget para uma instância de Field. /// </summary> public Field ToMediaField() { var field = new Field(); field.CopyFrom(this); field.Properties = new FieldProperties(); field.Properties.CopyFrom(this); // Verificando se o widget da suporte à interface IHasOptions<TOption> var options = field.Get <IEnumerable>("Options"); if (options != null) { var values = field.Get <object[]>("Value"); if (values == null) { var value = field.Get("Value"); values = value.AsSingle().NonNull().ToArray(); } var fieldValues = new FieldValueCollection(); foreach (Option option in options) { var fieldValue = new FieldValue(); fieldValue.CopyFrom(options); fieldValue.Selected = values.Contains(option.Value); } field.Value = fieldValues; } return(field); }