I just wanted to share a nice debugging tool in Infragistics (see screenshot).

I discovered it a couple of days ago and I just can't stop using it.

Here's how to call it:

DEFINE VARIABLE ObjectToDisplay AS CLASS System.Object NO-UNDO.
ObjectToDisplay = <expression that returns your object>.
WAIT-FOR (NEW Infragistics.Shared.UltraPropertyPageDialog(ObjectToDisplay)):ShowDialog().

Note: at least in 10.2B06, putting an expression as a parameter of UltraPropertyPageDialog in the WAIT-FOR  rather than a simple object reference would give an error at run-time, that's why I use an intermediate object.

It allows to see the properties (name and value) of the most derived type of the passed object and of its sub-objects.

It even allows you to drill down many sub-object properties.  You can also change values.

E.g. screenshot show an object of type Infragistics.Win.UltraWinEditors.EditorButtonEventArgs

It's "Button" property is of type "Infragistics.Win.UltraWinEditors.EditorButtonBase" in the documentation, but the tool shows that the instance during execution is a derived instance of type "StateEditorButton".

Similarly, the "Context" property is of type "System.Object" but the tool shows that the instance during execution is a derived instance of type "UltraGridCell".

The object passed as a parameter doesn't have to be an Infragistics object.

Enjoy.