[Mono-winforms-list] PropertyGrid bugs

Ivan N. Zlatev contact at i-nz.net
Mon Feb 18 18:09:52 EST 2008

On Feb 18, 2008 11:07 AM, Andy Hume <andyhume32 at yahoo.co.uk> wrote:
> Hi Ivan
> I'm just rebuilding so that I can re-check the CultureInfo selection
> issue, I had r95958 on both platforms but saw the problem.  However
> after a rebuild on Linux it is fixed, so something must have gone wonky
> in my build.  I'm rebuilding on Win32, so I'll be able to retest there
> after cygwin's managed to do its work...
> I've added some unit-tests to bugzilla of the
> PropertyDescriptor.Converter property.  That seems to work with
> attributes applied to properties, but PG itself doesn't seem to respect
> such attributes.  Does it do its own lookups?

No it doesn't, but you might be hitting a bug related to #324472 -
"Attribute.GetCustomAttributes doesn't get inherited attributes for
properties" (https://bugzilla.novell.com/show_bug.cgi?id=324472)

> I also did some
> unit-tests of CharConverter but Gert beat me to it, and uncovered and
> fixed the only issue I found (NRE when null passed in).

Kudos to Gert and my bad I didn't review my changes better.

> On the "property tab support".  I haven't managed to get MSFT to display
> an events tab.  I presume one has to do stuff with
> System.Windows.Forms.Design.EventsTab to get it to appear.

You would need to have the PropertyGrid Sited (.Site = ...) to an
ISite that provides an IEventBindingService, because that would be how
the EventsTab will use to feed the propertygrid with events as

> What did you mean by
> >>   * Implement TypeDescriptor Associations and Providers.

This will be a biggie. Basically Associations are where you associate
a component with others, so that the associated components are used
instead of the original component or something along the lines.
Providers are a way to modify the metadata provided by a component
because instead of asking the component directly of its e.g properties
the provider is being asked. This indirectly related to the ability of
the PG to handle extended metadata (PG uses TypeDescriptor).

> get_Property is called twice for each item when
> opening a drop-down, etc) but I'll re-check against the new build before
> I log them.
> Things are improving greatly!

The get_Property one is not a bug. It's an implementation detail,
which doesn't make a difference behavior-wise and one shouldn't rely
on the number of time get_Property gets called. I do not think MS can
guarantee you that either. Conclusion: not a bug, could be regarded as
a future optimization though. Optimizing the GridEntry class with some
caching is on the todo list.

BTW, you might want to consider subscribing to the mono-winforms list
at http://lists.ximian.com/mailman/listinfo/mono-winforms-list . :)

Ivan N. Zlatev

Web: http://www.i-nZ.net
"It's all some kind of whacked out conspiracy."

More information about the Mono-winforms-list mailing list