public virtual PropertyDescriptor this[int index] { get { if (index >= propCount) { throw new IndexOutOfRangeException(); } EnsurePropsOwned(); return properties[index]; } }