Binding.Mode Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets or sets a value that indicates the direction of the data flow in the binding.
public:
property BindingMode Mode { BindingMode get(); void set(BindingMode value); };
BindingMode Mode();
void Mode(BindingMode value);
public BindingMode Mode { get; set; }
var bindingMode = binding.mode;
binding.mode = bindingMode;
Public Property Mode As BindingMode
<Binding Mode="bindingModeMemberName"/>
Property Value
One of the BindingMode values. The default is OneWay: the source updates the target, but changes to the target value do not update the source.
Examples
This example demonstrates how to set the binding mode in XAML.
<TextBox x:Name="MyTextBox" Text="Text" Foreground="{Binding Brush1, Mode=OneWay}"/>
Remarks
For OneWay and TwoWay bindings, dynamic changes to the source don't automatically propagate to the target without providing some support from the source. You must implement the INotifyPropertyChanged interface on the source object so that the source can report changes through events that the binding engine listens for. For C# or Microsoft Visual Basic, implement System.ComponentModel.INotifyPropertyChanged. For Visual C++ component extensions (C++/CX), implement Windows::UI::Xaml::Data::INotifyPropertyChanged.
For TwoWay bindings, changes to the target automatically propagate to the source, except if the binding target is the TextBox.Text property. In that case, the update happens only when the TextBox loses focus. Also, it's possible to set UpdateSourceTrigger on TwoWay bindings to Explicit, in which case you control the updates to the source explicitly by calling UpdateSource.
For OneTime and OneWay bindings, calls to DependencyObject.SetValue automatically change the target value and delete the binding.
You can't set the property values of a Binding object after that binding has been attached to a target element and target property. If you attempt this you'll get a run-time exception.