KGySoft.ComponentModel Namespace

In KGy SOFT WinForms Libraries the KGySoft.ComponentModel namespace contains a couple of classes (ExpandablePropertiesConverter and RecursivelyEditableTypeDescriptor) that allow recursively opening the properties of an object in a PropertyGrid, even if the object itself is not expandable. Furthermore, it contains the WinFormsCommandBindingsCollection class, which is a specialized implementation of CommandBindingsCollection, allowing to synchronize the Enabled state (or any other state if they are properties of the command source it that is a Control).
For more KGySoft.ComponentModel types see the KGySoft.ComponentModel namespace of the KGy SOFT Core Libraries.

Classes

ExpandablePropertiesConverter Provides a type converter that allows expanding the properties recursively in a PropertyGrid. This class is similar to System.ComponentModel.ExpandableObjectConverter, but that one allows expanding the top-level properties only.
RecursivelyEditableTypeDescriptor Represents a custom type descriptor that can wrap any object to allow editing its properties recursively in a PropertyGrid.
WinFormsCommandBindingsCollection A specialized CommandBindingsCollection that can be used for commands with Control sources. By using this collection, the ICommandState properties (e.g. Enabled, but also any other dynamically added property) of the added bindings will be synced with the command sources. It also supports cross-thread updates, if its SupportCrossThreadStateUpdates property is set to .