The Value property in the ProgressBar by default binds TwoWay , so an exception should occur if you do not explicitly set Mode to OneWay . However, I cannot explain why this does not happen on your machine. I tried using Reflector with versions of .NET 4.0, 3.5, and 3.0, and as far as I can tell, the default binding mode did not change after a while.
If you have Reflector installed, it would be interesting to see what ValueProperty (inherited from RangeBase) looks like on your computer.
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register( "Value", typeof(double), typeof(RangeBase), new FrameworkPropertyMetadata( 0.0, FrameworkPropertyMetadataOptions.Journal | FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback(RangeBase.OnValueChanged), new CoerceValueCallback(RangeBase.ConstrainToRange)), new ValidateValueCallback(RangeBase.IsValidDoubleValue));
Fredrik hedblad
source share