c# - 禁用和启用反向绑定
问题描述
我有一些文本框绑定到MyText
后面的代码中,我需要以下内容:
if(x)
//disable binding of textbox
if(y)
//enable back binding'
我知道可以像这样取消绑定:
BindingOperations.ClearBinding(MyTextBox, TextBox.TextProperty)
但是如何禁用然后再启用呢?可能吗?
解决方案
您不能暂时“禁用”或“暂停”绑定。您必须删除绑定,然后创建一个新的绑定:
if (x)
BindingOperations.ClearBinding(MyTextBox, TextBox.TextProperty);
else if (y)
BindingOperations.SetBinding(MyTextBox, TextBox.TextProperty, new Binding("MyText"));
就绑定机制而言,没有其他或更好的方法。
不过,您不必首先清除绑定。