The [Transient] metadata is to prevent a property from being serialized when you send it to a server. It will not prevent a property from being bindable.
I would suggest that you create a method setVisible() instead of using a property. If you then set a private variable, this will not trigger a collection change. You could also make each property in FooDto bindable except the "visible" property.