Example #1
0
        /// <summary>
        /// Gets a list of selected Dynamics365Field objects.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="provider">The provider.</param>
        /// <param name="value">The value.</param>
        /// <returns>The selected objects.</returns>
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            IDataSourceFieldsProvider    fieldsProvider = (IDataSourceFieldsProvider)context.Instance;
            BindingList <DataTableField> currentValue   = (BindingList <DataTableField>)value;

            checkedListBox.Items.Clear();
            checkedListBox.Items.Add("Select All", false);
            checkedListBox.ItemCheck += CheckedListBox_ItemCheck;

            List <DataTableField> fields = fieldsProvider.GetDataSourceFields();

            fields.ForEach(field => checkedListBox.Items.Add(field, currentValue.Contains((DataTableField)field)));

            IWindowsFormsEditorService service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

            service.DropDownControl(checkedListBox);

            BindingList <DataTableField> checkedFields = new BindingList <DataTableField>();

            for (int itemIndex = 0; itemIndex < checkedListBox.CheckedIndices.Count; itemIndex++)
            {
                if (checkedListBox.CheckedIndices[itemIndex] != 0)
                {
                    DataTableField field = (DataTableField)checkedListBox.CheckedItems[itemIndex];
                    checkedFields.Add(field);
                }
            }

            return(checkedFields);
        }
Example #2
0
        /// <summary>
        /// Converts a value from a string to a DataColumn.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="culture">The culture.</param>
        /// <param name="value">The value to convert.</param>
        /// <returns>A DataColumn.</returns>
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            if (!string.IsNullOrEmpty((string)value))
            {
                IDataSourceFieldsProvider provider = (IDataSourceFieldsProvider)context.Instance;
                List <DataTableField>     fields   = provider.GetDataSourceFields();
                string columnName = Regex.Match((string)value, CoreUtility.FieldMatchPattern).Groups[1].Value;
                return(fields.First(field => field.ColumnName == columnName));
            }

            return(null);
        }
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            BindingList <DataTableField> fields = new BindingList <DataTableField>();

            if (!string.IsNullOrEmpty((string)value))
            {
                IDataSourceFieldsProvider fieldsProvider = (IDataSourceFieldsProvider)context.Instance;
                List <DataTableField>     sourceFields   = fieldsProvider.GetDataSourceFields();
                string[] fieldStrings = ((string)value).Split(new string[] { FIELD_DELIMITER }, StringSplitOptions.None);

                foreach (string fieldString in fieldStrings)
                {
                    string         columnName = Regex.Match(fieldString, CoreUtility.FieldMatchPattern).Groups[1].Value;
                    DataTableField field      = sourceFields.FirstOrDefault(f => f.ColumnName == columnName); // todo - comparer
                    fields.Add(field);
                }
            }

            return(fields);
        }
Example #4
0
        /// <summary>
        /// Gets a list of Operation DataColumn objects.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <returns>The list of Operation DataColumn objects.</returns>
        public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
        {
            IDataSourceFieldsProvider provider = (IDataSourceFieldsProvider)context.Instance;

            return(new StandardValuesCollection(provider.GetDataSourceFields()));
        }