OK, I've been coming up with a few more test scenarios.
In one, I have a simple string property on Foo, let's say, Foo.Number. When I go to the designer property page to edit it, I create a modal form with a text box and enter a new value. This works-- I can enter the new value, and the parent form page gets marked as changed, so I can hit Ctrl-S, and the changed value gets persisted out to the Windows Form Designer generated code.
In another, I have another simple string property on Foo, named DropNumber. I chose this name because when I edit the value in the designer, I have a dropdown with a textbox in it. This also works.
In a third, I have an object, FooOptionsDrop, which has an drop-down (textbox) editor that only manipulates one property on FooOptionsDrop (not on the actual Foo control). That does NOT work.
So, I'm drawing the conclusion that the problem lies with editting an object; no matter what kind of editor I use, the parent form fails to recognize that I've made a change. If the property in question is directly a part of the control, the changes are recognized.
Again, please, tell me why! What do I need to do so that the parent form recognizes changes to a control's property object? It looks like changes to the DynamicProperties on a form are recognized, but I can't find anything that talks about how it works (nor does it show up in Reflector).
Help!!