public DropDownListEditExtension DropDownEdit(Action <DropDownListEditSettings> settings)
        {
            HttpUtils.SetContextValue <HtmlHelper>("DXHtmlHelper", HtmlHelper);

            var settingsInstance = new DropDownListEditSettings();

            settings?.Invoke(settingsInstance);
            if (string.IsNullOrEmpty(settingsInstance.Name))
            {
                throw new Exception("Name of control must be not empty.");
            }
            if (string.IsNullOrEmpty(settingsInstance.HiddenPropertyName))
            {
                throw new Exception("Name of hidden property must be not empty.");
            }
            HtmlHelper.ViewContext.Writer.Write(HtmlHelper.Hidden(settingsInstance.HiddenPropertyName).ToHtmlString());
            var dropDownEdit = new DropDownListEditExtension(settingsInstance);

            return(dropDownEdit);
        }
        public DropDownListEditExtension DropDownEditFor <TValueType>(Expression <Func <ModelType, TValueType> > expression, Action <DropDownListEditSettings> settings)
        {
            HttpUtils.SetContextValue <HtmlHelper>("DXHtmlHelper", HtmlHelper);

            var settingsInstance = new DropDownListEditSettings();

            settings?.Invoke(settingsInstance);
            settingsInstance.HiddenPropertyName = ExtensionsHelper.GetFullHtmlFieldName(expression);
            if (string.IsNullOrEmpty(settingsInstance.Name))
            {
                throw new Exception("Name of control must be not empty.");
            }
            if (string.IsNullOrEmpty(settingsInstance.HiddenPropertyName))
            {
                throw new Exception("Name of hidden property must be not empty.");
            }
            HtmlHelper.ViewContext.Writer.Write(HtmlHelper.HiddenFor(expression).ToHtmlString());
            var dropDownEdit = new DropDownListEditExtension(settingsInstance);

            return(dropDownEdit);
        }