When a BindableControlModel is bound to an external value,
then every change in the control model's value is immediately reflected
in the external binding.
If the binding set via this interface supports the ValueBinding::ReadOnly
and ValueBinding::Relevant properties, they're respected by the control model:
- The control model's own
ReadOnly
property (if present) is kept in sync with the
binding's ReadOnly
property. That is, any control using the value
binding is read-only as long as the binding is.
- The control model's own
Enabled
property (if present) is kept in sync
with the binding's Relevant
property. That is, any control using
the value binding is disabled as long as the binding is not relevant.
In both cases, explicit changes of the model's property are ignored if they would relax
the restriction imposed by the binding.
For instance, if the binding declares it's value to
be read-only (indicated by ValueBinding::ReadOnly being true), then
any attempt to set the ReadOnly
property of the control model to false will
fail. However, if the binding's value is not read-only, then the ReadOnly
property at the control model can be freely set.
The very same holds for the binding's ValueBinding::Relevant and the control
model's Enabled
properties.