我有一个带有默认按钮的 TitleAreaDialog,我在其中使用数据绑定来同步模型和小部件。如何延迟模型更新,直到用户单击“确定”按钮?
谢谢!
我有一个带有默认按钮的 TitleAreaDialog,我在其中使用数据绑定来同步模型和小部件。如何延迟模型更新,直到用户单击“确定”按钮?
谢谢!
我不知道怎么拖延。另一种方式,注册 DisposeListener 以检查用户选择 ok 或 cancel。如果结果不好,我放弃更改。
就我而言,我绑定了从休眠中获取的模型。当'ok'时保持休眠状态,按下取消时刷新模型(从数据库重新读取数据)。
但是,我也希望该功能延迟或撤消更改。
您必须设置UpdateValueStrategy
ofPOLICY_CONVERT
或POLICY_ON_REQUEST
为您的绑定“延迟”模型更新:
DataBindingContext dbc = new DataBindingContext();
final Binding binding = dbc.bindValue(target, model,
new UpdateValueStrategy(UpdateValueStrategy.POLICY_CONVERT), null);
然后您可以通过 OK 按钮更新目标,如下所示:
Button btnOK = mToolkit.createButton(parent, "OK", SWT.NONE);
btnOK.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(SelectionEvent e)
{
binding.updateModelToTarget();
}
});
或者您可以DataBindingContext
通过调用更新所有绑定DataBindingContext.updateTargets()