> how could you bind a property to a control in code without using the static text mechanism
There is no ready-made binding implemented for inner objects, and that's a product of inner objects being tools for custom objects that are better presented using a custom control, e.g., an EQ curve, a sequencer grid, etc.
The PopulateTableItem array returned as out-arg of GetDialog complements the static text placeholders control. However, you change the mapping on initialization, so it's more dynamic than the resources. Its use case is mostly for reusing the same UI implementation for slightly varying plug-in models, i.e., when the UI is the same, but properties differ.
With that in mind, it's worth mentioning that inner object are meant specifically for cases where there is a variable number of objects, and not merely an abstraction tool. If you have a fixed number of objects (e.g., max number of bands in an EQ), consider creating individual numbered properties and use the regular property binding system: it's going to be much simpler.
If you need the variable number of objects, to implement what we can consider a "binding" between the inner object data model to a control you need to do two things:
1) Initialize the control to the model's original value
Use AK::Wwise::Plugin::ObjectStore::GetPropertySet to query instances from 0 to GetListCount(). You can fill a Win32/MFC list control and assign columns to your inner object data model, but you still need to fill the cells yourself with controls you manage on dialog init.
2) React to changes
a) From the user
When the user accepts a value in one of your custom controls, you need to update your inner data model, which is done using the PropertySet pointer retrieved from AK::Wwise::Plugin::ObjectStore::GetPropertySet. These events are Win32 events and routed to your plug-in through the WindowProc method.
b) From the model
You can implement a generic system by also having Wwise notify your plug-in of changes to the inner object model by implementing:
* NotifyInnerObjectPropertyChanged
* NotifyInnerObjectAddedRemoved
These are part of the ObjectStore notification interface.
I hope this info is useful, and good luck!