Exemple #1
0
            /// <summary>
            /// Converts the given value object to the specified type, using the specified context and culture information.
            /// </summary>
            /// <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext" /> that provides a format context.</param>
            /// <param name="culture">A <see cref="T:System.Globalization.CultureInfo" />. If null is passed, the current culture is assumed.</param>
            /// <param name="value">The <see cref="T:System.Object" /> to convert.</param>
            /// <param name="destinationType">The <see cref="T:System.Type" /> to convert the <paramref name="value" /> parameter to.</param>
            /// <returns>
            /// An <see cref="T:System.Object" /> that represents the converted value.
            /// </returns>
            /// <exception cref="T:System.ArgumentNullException">
            /// The <paramref name="destinationType" /> parameter is null.
            /// </exception>
            /// <exception cref="T:System.NotSupportedException">
            /// The conversion cannot be performed.
            /// </exception>
            public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
            {
                DelimitedStringCollection strings = value as DelimitedStringCollection;

                if (!(destinationType != typeof(string)) && (strings != null))
                {
                    return(strings.ToString());
                }
                return(base.ConvertTo(context, culture, value, destinationType));
            }
Exemple #2
0
            /// <summary>
            /// Converts the given object to the type of this converter, using the specified context and culture information.
            /// </summary>
            /// <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext" /> that provides a format context.</param>
            /// <param name="culture">The <see cref="T:System.Globalization.CultureInfo" /> to use as the current culture.</param>
            /// <param name="value">The <see cref="T:System.Object" /> to convert.</param>
            /// <returns>
            /// An <see cref="T:System.Object" /> that represents the converted value.
            /// </returns>
            /// <exception cref="T:System.NotSupportedException">
            /// The conversion cannot be performed.
            /// </exception>
            public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
            {
                DelimitedStringCollection strings;

                if (!(value is string))
                {
                    return(base.ConvertFrom(context, culture, value));
                }
                if (context.PropertyDescriptor.IsReadOnly)
                {
                    strings = context.PropertyDescriptor.GetValue(context.Instance) as DelimitedStringCollection;
                    if (strings != null)
                    {
                        strings.AddDelimited(value.ToString());
                    }
                }
                else
                {
                    strings = new DelimitedStringCollection(value.ToString());
                }
                return(strings ?? base.ConvertFrom(context, culture, value));
            }