PropertyGrid is able to edit many different kinds
of data, and can provide special-purpose user interfaces for certain
types. For example, the
shown earlier has a
Date field, and the
PropertyGrid can display a date picker control
when you edit this control. It supports all the built-in types, and
all the types used on common properties on controls. It is also
possible to extend its capabilities so that it can edit new types.
PropertyGrid turns out not to have a long list
of types that it knows how to display and edit. The control itself
knows nothing about, say, the
Color types, and yet it is still able to present
them for editing. This is because it has a very flexible open
architecture that allows any type to make itself editable.
A type can provide various levels of support for the
PropertyGrid, even going as far as supplying a
special-purpose user interface for editing that type (like the
pickers that appear for
ContentAlignment). We will see how to do that
later, but for many types, simple text editing will suffice. So at
the bare minimum, our type must support conversion to and from
text—its value will be converted to text when it is first
displayed in the grid. If the user changes that text, the new
string must be converted back to an instance of
our type for the edit to take effect.
We will now introduce a custom type to the
CustomerDetails example and then add support for basic type conversion ...