/// <summary>
        /// CreateField in EntryForm
        ///
        /// </summary>
        /// <param name="param">
        /// param.PropertyInfo
        /// param.Location
        /// param.OrientationField
        /// param.SizeLabel
        /// param.SizeControl
        /// param.ConfigProperty
        /// param.TabIndex
        /// param.Service
        /// param.ConfigEntity
        /// param.TabControlForm
        /// param.Entity
        /// param.ConteneurFormulaire
        /// </param>
        /// <returns>the created field</returns>
        public BaseField CreateField_In_EntryForm(CreateFieldParams param)
        {
            ComboBoxField comboBoxField = new ComboBoxField();

            comboBoxField.StopAutoSizeConfig();
            comboBoxField.Name             = param.PropertyInfo.Name;
            comboBoxField.Location         = param.Location;
            comboBoxField.OrientationField = param.OrientationField;
            comboBoxField.SizeLabel        = param.SizeLabel;
            comboBoxField.SizeControl      = param.SizeControl;

            comboBoxField.TabIndex   = param.TabIndex;
            comboBoxField.Text_Label = param.ConfigProperty.DisplayProperty.Title;
            comboBoxField.ConfigSizeField();

            // DataSource
            //var DataObject = Activator.CreateInstance(param.ConfigProperty.DataSource.TypeObject);
            //IList ls_data = (IList)DataObject.GetType().GetMethod(param.ConfigProperty.DataSource.MethodeName).Invoke(DataObject, null);
            IList ls_data = param.ConfigProperty.DataSource.GetData();

            List <object> ls_data_object = ls_data.Cast <string>().ToList <object>();


            comboBoxField.DataSource = ls_data_object;

            // Insertion à l'interface
            param.ConteneurFormulaire.Controls.Add(comboBoxField);
            return(comboBoxField);
        }
        public BaseField CreateField_In_Filter(CreateField_In_Filter_Params param)
        {
            ComboBoxField stringFiled = new ComboBoxField();

            stringFiled.StopAutoSizeConfig();
            stringFiled.Name             = param.ConfigProperty.PropertyInfo.Name;
            stringFiled.SizeLabel        = param.SizeLabel;
            stringFiled.SizeControl      = param.SizeControl;
            stringFiled.OrientationField = Orientation.Horizontal;
            stringFiled.TabIndex         = param.TabIndex;
            stringFiled.Text_Label       = param.ConfigProperty.DisplayProperty.Title;

            stringFiled.ConfigSizeField();

            // DataSource
            IList         ls_data        = param.ConfigProperty.DataSource.GetData();
            List <string> ls_data_string = ls_data.Cast <Object>().Select(o => o.ToString()).ToList <string>();

            // Add Blank Data
            if (param.ConfigProperty.Filter.isDefaultIsEmpty)
            {
                ls_data_string.Insert(0, "");
            }
            stringFiled.DataSource = ls_data_string.ToList <object>();



            param.FilterContainer.Controls.Add(stringFiled);

            return(stringFiled);
        }
        /// <summary>
        /// Create Field in Filter
        /// </summary>
        /// <param name="param"></param>
        /// <returns>Created field instance</returns>
        public BaseField CreateField_In_Filter(CreateField_In_Filter_Params param)
        {
            // Create Field
            ComboBoxField comboBoxField = new ComboBoxField();

            comboBoxField.StopAutoSizeConfig();
            comboBoxField.Name             = param.ConfigProperty.PropertyInfo.Name;
            comboBoxField.SizeLabel        = param.SizeLabel;
            comboBoxField.SizeControl      = param.SizeControl;
            comboBoxField.OrientationField = Orientation.Horizontal;
            comboBoxField.TabIndex         = param.TabIndex;
            comboBoxField.Text_Label       = param.ConfigProperty.DisplayProperty.Title;
            comboBoxField.ConfigSizeField();

            // DataSource
            comboBoxField.DataSource = Enum.GetValues(param.ConfigProperty.PropertyInfo.PropertyType).Cast <object>().ToList <object>();

            // Insert Field in Filter
            param.FilterContainer.Controls.Add(comboBoxField);

            return(comboBoxField);
        }
        /// <summary>
        /// CreateField in EntryForm
        ///
        /// </summary>
        /// <param name="param">
        /// param.PropertyInfo
        /// param.Location
        /// param.OrientationField
        /// param.SizeLabel
        /// param.SizeControl
        /// param.ConfigProperty
        /// param.TabIndex
        /// param.Service
        /// param.ConfigEntity
        /// param.TabControlForm
        /// param.Entity
        /// param.ConteneurFormulaire
        /// </param>
        /// <returns>the created field</returns>
        public BaseField CreateField_In_EntryForm(CreateFieldParams param)
        {
            // Create Field
            ComboBoxField comboBoxField = new ComboBoxField();

            comboBoxField.StopAutoSizeConfig();
            comboBoxField.Name             = param.PropertyInfo.Name;
            comboBoxField.Location         = param.Location;
            comboBoxField.OrientationField = param.OrientationField;
            comboBoxField.SizeLabel        = param.SizeLabel;
            comboBoxField.SizeControl      = param.SizeControl;
            comboBoxField.TabIndex         = param.TabIndex;
            comboBoxField.Text_Label       = param.ConfigProperty.DisplayProperty.Title;
            comboBoxField.ConfigSizeField();

            // DataSource
            comboBoxField.DataSource = Enum.GetValues(param.PropertyInfo.PropertyType).Cast <object>().ToList <object>();

            // Insert field in Form
            param.ConteneurFormulaire.Controls.Add(comboBoxField);
            return(comboBoxField);
        }