Remove binding in WPF using code
C#WpfC# Problem Overview
I would like to use databinding when displaying data in a TextBox. I'm basically doing like:
public void ShowRandomObject(IRandomObject randomObject) {
Binding binding = new Binding {Source = randomObject, Path = new PropertyPath("Name")};
txtName.SetBinding(TextBox.TextProperty, binding);
}
I can't seem to find a way to unset the binding. I will be calling this method with a lot of different objects but the TextBox will remain the same. Is there a way to remove the previous binding or is this done automatically when I set the new binding?
C# Solutions
Solution 1 - C#
Alternately:
BindingOperations.ClearBinding(txtName, TextBox.TextProperty)
Solution 2 - C#
When available
BindingOperations.ClearBinding(txtName, TextBox.TextProperty)
For older SilverLight versions, but not reliable as stated in comments:
txtName.SetBinding(TextBox.TextProperty, null);
C# 6.0 features enabled
this.btnFinish.ClearBinding(ButtonBase.CommandProperty);
Solution 3 - C#
How about:
this.ClearValue(TextBox.TextProperty);
It's much cleaner I think ;)
Solution 4 - C#
How about just
txtName.Text = txtName.Text;
You would have to set the value after clearing it anyways. This works in SL4 at least.