Yes, this is possible.
You don't lose the bindings, if MyData::MyProperty is indeed a dependency property.
I assume that MyDataCollection is a descendant of the Collection<T> class? If this is the case, then your code should work as is.
On the code-behind of the MyControl, be sure to initialize the collection to an unique new instance in a non-static (public or private) constructor. The dependency property registration mechanism causes initial object instances to be static, so if you don't create a new instance in the instance constructor, the default static collection instance gets shared among all the instances of the class to which the property gets registered.