我在binder中有一些组件:
binder.bind(cbClientRating, Client::getRating, Client::setRating);
binder.bind(tfFirstName, Client::getFirstName, Client::setFirstName);
binder.bind(tfLastName, Client::getLastName, Client::setLastName);
binder.bind(dfBirthDate, Client::getBirthDate, Client::setBirthDate);
根据我的业务逻辑,我不需要更改绑定器中一个组件的 readonly 状态,例如当我调用时,Combobox - cbClientRating binder.setReadOnly(false)
。它应该保持只读模式等于真。
现在我打电话
致电cbClientRating.setReadOnly(true)
binder.setReadOnly(false)
binder.setReadOnly(false);
cbClientRating.setReadoOnly(true);
还有其他解决方案吗?
答案 0 :(得分:0)
Binder#setReadOnly(boolean)
的源代码:
/**
* Sets the read only state to the given value for all currently bound
* fields.
* <p>
* This is just a shorthand for calling setReadOnly for all currently bound
* fields. It means that fields bound after this method call won't be set
* read-only.
*
* @param fieldsReadOnly
* true to set the fields to read only, false to set them to read
* write
*/
public void setReadOnly(boolean fieldsReadOnly) {
getBindings().stream().map(BindingImpl::getField)
.forEach(field -> field.setReadOnly(fieldsReadOnly));
}
所以这只是一种方便的方法。我建议您根据自己的业务逻辑自己完全处理字段只读状态。