Hi Jason,
The WPF PropertyGrid control supports grouping, sorting, single and multiple instance editing, transactions (undo/redo), dependency enabling and probably a few other things I've forgotten. There's no hierarchy support internally but the value editors are customizable - out of the box there are editors for sliders, standard values, multi-line text check-box etc, that are DataTemplate driven. So it's very easy to create your own editor - just derive from the ValueEditor class and override GetTemplate to supply the DataTemplate and GetCustomContext to supply the new DataContext for the editor. If you need a concrete example then let me know and I'll put something together as soon as I can,
Regards,
Des