我有一个(varchar)字段Foo,只有在(位)Bar 不为真时才能指定。当Bar为true时,我希望显示Foo的文本框禁用 - 基本上是FooBox.Enabled = !isBar
。我正在尝试做类似
FooBox.DataBindings.Add(new Binding("Enabled", source, "!isBar"));
但当然那里的爆炸引发了异常。我也试过像“isBar!= true”或“isBar<> true”这样的结构,但都没有用。我在这里咆哮错误的树吗?
答案 0 :(得分:2)
据我所知,Databind使用反射来查找作为第3个字符串参数传递的成员。您不能在那里传递表达式,只能传递成员名称。
答案 1 :(得分:1)
我前一段时间尝试做过这样的事情,我能想到的最好的是
a)将源类更改为也具有NotBar属性并绑定到该
b)围绕具有NotBar属性并绑定到该源的源创建一个哑包装类。
答案 2 :(得分:-1)
如果isBar是源类的属性(否则你需要一个类的属性来进行绑定)这应该有效:
FooBox.DataBindings.Add("Enabled", source, "isBar");
但请记住source.isBar必须存在并且是布尔值。