Java 在通过网格编辑器更改值后,如何在Vaadin网格中强制更新?

Java 在通过网格编辑器更改值后,如何在Vaadin网格中强制更新?,java,vaadin,vaadin8,vaadin-grid,Java,Vaadin,Vaadin8,Vaadin Grid,我想在网格编辑器中编辑的行中,在另一个值更改后立即更新。例如,如果我在购买中更改货币,我希望调整该货币的金额。有鉴于此,我有: Grid grid = new Grid(); grid.getEditor().setEnabled(true); grid.addColumn(Purchase::getAmount()) .setEditorBinding(amountField, Purchase::setAmount); grid.addColumn(Purchase::getCur

我想在网格编辑器中编辑的行中,在另一个值更改后立即更新。例如,如果我在购买中更改货币,我希望调整该货币的金额。有鉴于此,我有:

Grid grid = new Grid();
grid.getEditor().setEnabled(true);

grid.addColumn(Purchase::getAmount())
    .setEditorBinding(amountField, Purchase::setAmount);
grid.addColumn(Purchase::getCurrency())
    .setEditorBinding(currencyField, Purchase::setCurrency);

grid.getEditor().getBinder().addValueChangeListener(event ->
{
    Component component = event.getComponent();
    if(component.equals(currencyField))
    {
        Purchase purchase = binder.getBean();
        purchase.setAmount(amountAdjustedForCurrency(purchase.getCurrency()));
        // How do I update to the amount in the grid for that row?
    }
});

我的问题是如何更新网格中的金额?即使调整了bean,屏幕也没有更新…

我想到的第一件事是在该值更改侦听器中执行编程强制关闭-使用编辑重新打开

grid.getEditor().save();grid.getEditor().editRow(rowIndex)