Hi Tarquin,
We have samples that show how this can be accomplished. The Editors Integration (Custom) demo shows how you can leverage the EditorAttribute as you did in the WinFroms PropertyGrid. Effectively you create a class that derives from our PropertyEditor and indicates which DataTemplate should be used to present the property's value. The DataTemplate can contain any WPF supported content.
The samples show how to bind to the associated value also, but looks like:
{Binding Value, RelativeSource={RelativeSource AncestorType={x:Type propgrid:IPropertyDataAccessor}}, Mode=TwoWay}
Values are committed using WPF bindings, but you could write custom code to programmatically set the Value using similar logic.
You can also map PropertyEditors to properties by property name, property type, object type, or any combination of those. This is done on the PropertyGrid (for a single instance) or our BuiltinEditors class (for all PropertyGrids), and allows you to keep the UI logic out of your data objects.
There are several other ways to specify the editor that can be used, but those are the two most common.