What's new in 3.x
Dynamic contentNo obligation to just target an instance anymore. It is now easy and intuitive to create properties on the fly that can be linked to actual object properties or not. Furthermore, it is possible to append, insert, delete, show, hide, enable or disable any property, category or subcategory. Even the content of a listbox can be dynamic and filled on demand. Nested categoriesAn infinite number of categories can be nested under the top level allowing you to create complex hierarchies of data. For example a complete xml tree could be displayed by Smart PropertyGrid. Many built-in editorsThe Microsoft grid offers two inplace controls which are the dropdown button and the plain button for modal frames. With SPG you have no less than eleven built-in editors and the possibility to create new complex ones. An inplace control can even edit several values in the same row as showcased by the Unit editor (a value and its unit). The built-in editors are (most of them can contain a textbox): button, checkboxes, alpha color popup, date and time, dropdown list, masked textbox, radio buttons, textbox, trackbar, value with unit (or anything in a listbox) and updown buttons. Global appearance customizationBuilt-in drawing managers allow changing the global aspect of the control. The developer can create his own one to fit the aspect of his application. A drawing manager has access to any part of the PropertyGrid, so there is no difficulty to change the appearance of a +/- glyph or the horizontal line between the grid and the comments area. Property customizationBesides what can be done by a drawing manager, a property row can be customized by changing fore and back colors as well as its font and it can be done independently on the label and value parts. Visual qualityA great care has been observed to display every part of the control. Inplace controls are properly aligned up to the pixel and pleasant proportions are used to display text with customizable margins. Accessibility has been taken into account by letting the developer choose every parameter of the drawings. As an example, if a light gray is not suitable for disabled items, this color can be changed. All the screenshots on this page demonstrate this fact. NavigationPropertyEnumerator is the base class to navigate through the properties of the grid. It is possible to navigate the tree in deep order (this is the order used for display), to access sibling properties only or a parent, and in all cases you can navigate both ways and remove from the browsing all hidden properties. NotificationsThe client application can receive a lot of notifications to react accordingly, like property value and state changes, property creation, request for an UpDown control increment, and so on. Property value validationIt is trivial to attach a validator to any property that will check a newly entered value. Contrarily to the MS Grid, you decide what action to take when a validation fails instead of showing an automatic annoying popup to the end-user. MS PropertyGrid compatibilityAlthough it is recommended to use the new dynamic techniques to fill the PropertyGrid, SelectedObject can still be called on an instance of a class. You could even mix both techniques. SPG tries to be as much compatible as it can be by using existing UITypeEditor, TypeConverter, attribute classes or ICustomTypeDescriptor interface. But moreover, it adds a new layer of functionalities, mainly with attributes, to let you customize deeply what is really displayed. Properties sortingWhen using methods like AppendProperty, you control the order of appearance in categorized mode. But when using SelectedObject, SPG introduces new ways to sort your properties. The first one, if you have access to the target class code, is to attach a sorting index to all properties. The second one is to use a PropertyComparer class that will handle all the work. Hyperlinked propertiesHyperlinks in SPG can be twofold. First, a single row can contain an underline blue text that will act as a command when clicked. But it is also possible to "hyperlink" a property value and to assign it a URI format. And a lot more...Smart PropertyGrid is also made of those details that completely change the way you will use a PropertyGrid. You can customize the tooltips and the text ellipsis. You can define the behaviour and appearance of readonly properties, assign imagelists to property values, lock the resizing areas, search properties, and a lot more. |