コード例 #1
0
ファイル: TypeConverter.cs プロジェクト: xuanximoming/key
        /// <summary>
        /// 在给定 Object 的一组属性值的情况下重新创建该对象
        /// </summary>
        /// <param name="context"></param>
        /// <param name="propertyValues"></param>
        /// <returns></returns>
        public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues)
        {
            if (propertyValues == null)
            {
                throw new ArgumentNullException("NullParameter");
            }

            TypeColorPair colorPair = new TypeColorPair();

            colorPair.ForeColor = (Color)propertyValues["ForeColor"];
            colorPair.BackColor = (Color)propertyValues["BackColor"];
            return(colorPair);
        }
コード例 #2
0
ファイル: TypeConverter.cs プロジェクト: xuanximoming/key
        /// <summary>
        /// 将给定值对象转换为指定的类型
        /// </summary>
        /// <param name="context"></param>
        /// <param name="culture"></param>
        /// <param name="value"></param>
        /// <param name="destinationType"></param>
        /// <returns></returns>
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            TypeColorPair color = value as TypeColorPair;

            if (color != null)
            {
                // 转成String
                if ((destinationType == typeof(string)))
                {
                    return(color.ToString());
                }
            }
            // 基类的ConvertTo()必须调用
            return(base.ConvertTo(context, culture, value, destinationType));
        }
コード例 #3
0
ファイル: TypeConverter.cs プロジェクト: xuanximoming/key
        /// <summary>
        /// 将给定值转换为此转换器的类型
        /// </summary>
        /// <param name="context"></param>
        /// <param name="culture"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            // 从String转换
            string colorValue = (string)value;

            if (colorValue != null)
            {
                try
                {
                    TypeColorPair colorPair  = new TypeColorPair();
                    string[]      colorParts = colorValue.Split(new char[] { '|' });
                    colorPair.XmlForeColor = colorParts[0].Trim();
                    colorPair.XmlBackColor = colorParts[1].Trim();
                    return(colorPair);
                }
                catch
                {
                    throw;
                }
            }
            return(base.ConvertFrom(context, culture, value));
        }