Property grid usability
To be honest, I’ve never really thought that much about property grids but I can see where the article is coming from. Visual Studio is the only program I use that has them and scrolling through the grid trying to find the property I want isn’t really my favourite part of the day.
One of the places I think property grids really don’t work well is for controls with really large lists of sub items because you lose the benefit of the sort by category option. I think this helps a lot if you don’t know exactly the name of the property you’re trying to find. In the Microsoft property grid the category option is only available for top level properties so if you’re using a component with half a million child properties then you don’t get any category help for anything that’s not on the top level.
I don’t know if I think the idea of custom dialogs is really much better. I’ve spent more than enough time searching through custom dialogs trying to find an elusive setting.
I’m sure that a really good dialog would wipe the floor with the best intentioned property grid, but I’ve also seen a lot of custom dialogs that commit far worse UI crimes than the property grid does. One of the ones I particularly dislike is the Find dialog in VS2003. It blocks large parts of the screen that I need to complete the Find action and it jumps around the screen so it’s never where I left it. It’s also the UI equivalent of an airport car park, functional but very ugly.
One of the arguments for using something like the property grid is UI consistency. I personally think this is a pretty poor argument by itself and one that can be used to pardon UI crimes. There are a lot of advantages to using well known UI metaphors, but I think if that is the main argument for doing something then saying “well if everyone used blinking text to display hyperlinks, would you do it too?” is a fairly appropriate response.
It’s not even a good argument for something like the property grid since it’s basically just used in VisualStudio and the audience for most products isn’t other Microsoft developers unless you’re making VS plugins or components.
I always end up coming to the same conclusion when I think about anything like this: doing good UI development is hard. :)