0

在我的 UI 中,我有 2 个文本字段和 2 个按钮。我正在使用 jface 数据绑定来绑定文本字段,并且我正在进行验证,并且根据验证成功,模型会更新,否则它不会更新。我想要我的按钮做出相应的回应。就像我的模型没有更新,而不是我想禁用我的按钮。我不想做硬编码的另一件事。所以有没有办法在没有硬编码的情况下做到这一点。

以另一种方式,我想将一个按钮绑定到文本字段,以便当文本字段具有一些不需要的值时,应该禁用该按钮。在另一种方式中,我正在对文本字段进行数据绑定,这将在文本字段执行时注意没有正确的值,它不会更新其模型。然后我想在值不正确时禁用按钮,我可以这样做。任何指针对我都有很大帮助。

4

2 回答 2

0

您可以使用以下侦听器。将监听器添加到您的Observable

 org.eclipse.core.databinding.observable.value.IValueChangeListener
于 2013-04-11T14:38:15.683 回答
0

经过一番研究,我发现我必须观察按钮的启用/禁用属性并将其与当前的 emf 数据绑定上下文绑定。我使用的功能的详细信息如下:

void bindEnablementButtonToValidationStatus(Button button, EMFDataBindingContext ctx) {

    IObservableValue buttonEnable = SWTObservables.observeEnabled(button);
    IObservableValue validationStatus = new AggregateValidationStatus(
            ctx.getValidationRealm(),
            ctx.getBindings(), 
            AggregateValidationStatus.MAX_SEVERITY);

    ctx.bindValue(buttonEnable, validationStatus, 
            new EMFUpdateValueStrategy(
                    UpdateValueStrategy.POLICY_NEVER), 
                    new EMFUpdateValueStrategy().setConverter(
                            new Converter(IStatus.class, Boolean.TYPE) {
                                public Object convert(Object fromObject) {
                                    return new Boolean(((IStatus)fromObject).isOK());
                                }
                            }));

}

于 2014-03-25T04:03:42.363 回答