Seems like the question isn't quite the right one. The binding on the button should be to a property on the view model (ContentValid or something). The question you really want to ask is what that property should do.
You must be choosing the control to include based on some criteria – hopefully in the view model. Have all the controls implement an interface (which includes just that one property), have the view model expose a property of that type which is the control to be shown, and the ContentValid property can then just look in the property by CurrentDynamicControl.IsValid.
(The interface may also need to expose a UserControl, which would be implemented thus:
public UserControl UserControl { get { return this; } }
... if you want to use that same property on the view model to actually populate ContentControl, which would probably be for the best.)