使用代码删除WPF中的绑定

时间:2008-10-09 09:05:29

标签: c# wpf

我想在TextBox中显示数据时使用数据绑定。我基本上是这样做的:

 public void ShowRandomObject(IRandomObject randomObject) {
        Binding binding = new Binding {Source = randomObject, Path = new PropertyPath("Name")};
        txtName.SetBinding(TextBox.TextProperty, binding);
    }

我似乎无法找到解除绑定的方法。我将使用许多不同的对象调用此方法,但TextBox将保持不变。有没有办法删除以前的绑定,还是在设置新绑定时自动完成?

4 个答案:

答案 0 :(得分:89)

可替换地:

BindingOperations.ClearBinding(txtName, TextBox.TextProperty)

答案 1 :(得分:39)

可用时

BindingOperations.ClearBinding(txtName, TextBox.TextProperty)

对于较旧的SilverLight版本,但不如评论中所述可靠:

txtName.SetBinding(TextBox.TextProperty, null);

启用C#6.0功能

this.btnFinish.ClearBinding(ButtonBase.CommandProperty);

答案 2 :(得分:19)

怎么样:

this.ClearValue(TextBox.TextProperty);

我觉得它更清洁;)

答案 3 :(得分:0)

如何

txtName.Text = txtName.Text;

无论如何,您必须在清除后设置值。 这至少在SL4中有效。