Exemplo n.º 1
0
        public override object ConvertTo
        (
            System.ComponentModel.ITypeDescriptorContext context,
            System.Globalization.CultureInfo culture,
            object value,
            Type destinationType
        )
        {
            if (typeof(string) == destinationType)
            {
                Source_AntennaList antennaList = value as Source_AntennaList;

                if (null == antennaList)
                {
                    throw new ArgumentException("Expected a Source_AntennaList", "value");
                }

                StringBuilder sb = new StringBuilder( );

                foreach (Source_Antenna antenna in antennaList)
                {
                    Object obj = TypeDescriptor.GetConverter(typeof(Source_Antenna)).ConvertToString(antenna);

                    if (null == obj)
                    {
                        // Should NOT be possible ~ should get exception for bad arg
                        // before seeing a null == obj return value
                    }
                    else
                    {
                        sb.Append(obj as String);
                        sb.Append(';');
                    }
                }

                return(sb.ToString( ));
            }

            return(base.ConvertTo(context, culture, value, destinationType));
        }
Exemplo n.º 2
0
        public override object ConvertFrom
        (
            System.ComponentModel.ITypeDescriptorContext context,
            System.Globalization.CultureInfo culture,
            Object value
        )
        {
            Source_AntennaList antennaList = new Source_AntennaList( );

            if (String.IsNullOrEmpty(value as string))
            {
                return(antennaList);
            }

            String[] antennaStrings = (value as String).Split(new Char[] { ';' });

            if (null == antennaStrings)
            {
                return(antennaList);
            }

            foreach (String s in antennaStrings)
            {
                Object obj = TypeDescriptor.GetConverter(typeof(Source_Antenna)).ConvertFromString(s);

                if (null == obj)
                {
                    // TODO : supply err msg || rely on Source_Antenna converter for msg
                }
                else
                {
                    antennaList.Add(obj as Source_Antenna);
                }
            }

            return(antennaList);
        }