One thing you can do is put rules on the DDLs that have no condition and the following acion: concat(yourTextField, ";", .)
this is only a crude solution and I imagine you would require something a bit more sophisticated but it's something to start with.
Issues with this method:
-depending on your rules you may end up with either leading or trailing semi colons.
-it doesn't allow for -changes- in the DDL. the new selection is just added on the end of the old.
You could solve the first issue by having a seperate rule for if yourTextField is blank.
To solve the second issue you may require some code to run a current inventory of selected items and add them to yourTextField.
On reflection this is probably what you've been trying to achieve and what I've suggested is therefore of little help to you.
With any luck you'll get a response from those in the know.