Type Conversion
The
PropertyGrid
is able to edit many different kinds
of data, and can provide special-purpose user interfaces for certain
types. For example, the CustomerDetails
class
shown earlier has a DateTime
or
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.
The 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 DateTime
or
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 Color
and
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 ...
Get .NET Windows Forms in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.