首页 > 解决方案 > 禁用和启用反向绑定

问题描述

我有一些文本框绑定到MyText后面的代码中,我需要以下内容:

if(x)
  //disable binding of textbox
if(y)
  //enable back binding'

我知道可以像这样取消绑定:

BindingOperations.ClearBinding(MyTextBox, TextBox.TextProperty)

但是如何禁用然后再启用呢?可能吗?

标签: c#wpf

解决方案


您不能暂时“禁用”或“暂停”绑定。您必须删除绑定,然后创建一个新的绑定:

if (x)
    BindingOperations.ClearBinding(MyTextBox, TextBox.TextProperty);
else if (y)
    BindingOperations.SetBinding(MyTextBox, TextBox.TextProperty, new Binding("MyText"));

就绑定机制而言,没有其他或更好的方法。

不过,您不必首先清除绑定。


推荐阅读