public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes)
        {
            //return base.GetProperties(context, value, attributes);
            SharedVariable sv;

            //PropertyDescriptorCollection pdc;
            SubscriptionPropertyDescriptor[] descriptors;

            if ((context == null) || !(context.Instance is SharedVariable))
            {
                return(null);
            }

            sv = (SharedVariable)context.Instance;
            if (sv.Subscriptions.Count < 1)
            {
                return(null);
            }
            descriptors = new SubscriptionPropertyDescriptor[sv.Subscriptions.Count];

            for (int i = 0; i < sv.Subscriptions.Count; ++i)
            {
                descriptors[i] = new SubscriptionPropertyDescriptor(i, sv.Subscriptions[i], attributes);
            }
            return(new PropertyDescriptorCollection(descriptors));
        }
        public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes)
        {
            //return base.GetProperties(context, value, attributes);
            SharedVariable sv;
            //PropertyDescriptorCollection pdc;
            SubscriptionPropertyDescriptor[] descriptors;

            if ((context == null) || !(context.Instance is SharedVariable))
                return null;

            sv = (SharedVariable)context.Instance;
            if (sv.Subscriptions.Count < 1)
                return null;
            descriptors = new SubscriptionPropertyDescriptor[sv.Subscriptions.Count];

            for (int i = 0; i < sv.Subscriptions.Count; ++i)
            {
                descriptors[i] = new SubscriptionPropertyDescriptor(i, sv.Subscriptions[i], attributes);
            }
            return new PropertyDescriptorCollection(descriptors);
        }