Hi experts,
the central part of an application I'm working on is where User can select multiple objects and change some of their properties' values. The UI for that is a
PropertyGrid[
^].
The objects live in an inheritance hirarchy, some being siblings of each other. Some are composed of other objects that can publish editable properties as well. Those sub-objects' UI are other PropertyGrids arranged in a TabControl-like manner using
DockPanelSuite[
^].
Should User select multiple objects, they are merged into one grid. So setting one value affects all selected objects (and differing values cause the value space to be left empty, just as we all know it from VS).
Sub-objects of multi-selected objects get merged with sub-objects of equalling type (in the sense of the application, not type as in System.Type). But they are separated into several grids as per their function within the application suggests.
Property names are nicely translated for foreign users by the objects implementing
ICustomTypeDescriptor[
^]. In fact, they all inherit from a "TranslatableBase" base class.
Non-numeric values are also translated by custom
TypeConverter[
^]s.
This has already gotten far too long, I fear.
Now my problem: Within each PropertyGrid, the alphabetical
sorting doesn't work.
The sequence of properties as displayed is not alphabetical, nor the same as properties are defined in source.
[Edit]
The sorting doesn't match the property names (before the translation) either.
[/Edit]
[Edit2]
Having the
PropertySort[
^] property set to
Alphabetical[
^] works for a single selected object, but not for multi-selection.
[/Edit2]
Is there something one has to adhere to so that sorting works?