Problem with Grid Vaadin 8

Hello everyone,

i’m using in my project Grid of Vaadin 8, in particular my code is:

grid= new Grid<>();
grid.setWidth("100%");
grid.setHeightMode(HeightMode.UNDEFINED);
grid.addColumn(Integrazione::getStatoIntegrazione).setCaption("Stato integrazione");
grid.addColumn(Integrazione::getDataIntegrazione).setCaption("Data");
grid.addColumn(Integrazione::getNumeroProtocollo).setCaption("Numero Protocollo");
grid.addColumn(Integrazione::getMittente).setCaption("Mittente");
grid.addComponentColumn(e->{
	dettaglio = new Button(VaadinIcons.SEARCH);
	dettaglio.addClickListener(event->{
		dettaglioUI.setIntegrazioneTemp(e);
		dettaglioIntegrazione = new DettaglioIntegrazioneDettPanel();
		dettaglioIntegrazione.buildPanel();
		invia = dettaglioIntegrazione.getInvia();
		chiudi = dettaglioIntegrazione.getChiudi();
		invia.setCaption("Invia");
		invia.setEnabled(false);
		root.addComponent(dettaglioIntegrazione);
		if(dettaglioIntegrazione.getIntegrazione().isIntegrazioneRichiesta()) {

			invia.setEnabled(true);
			invia.addClickListener(evento->{

				if(dettaglioIntegrazione.getIntegrazione().getListaAllegati()!=null && !dettaglioIntegrazione.getIntegrazione().getListaAllegati().isEmpty())
				{
					for (Allegati allegato : dettaglioIntegrazione.getIntegrazione().getListaAllegati()) {
						if(allegato.isAllegatoCheck()) {
							integrazioneCompleta = true;
							break;
						}
					}
				}
				if(integrazioneCompleta == false) {
					new Notification("Per completare la sezione, è necessario allegare tutti i documenti richiesti.", Type.ERROR_MESSAGE).show(Page.getCurrent());

				}else {
					Pratica pratica;
					try {
						pratica = PEAUIService.inviaIntegrazione(dettaglioIntegrazione.getIntegrazione());
						dettaglioUI.getDettaglio().setInviaStato(pratica.getInviaStato());

						if(!pratica.getInviaStato().equalsIgnoreCase(InviaStatoEnum.INVIATA.toString()))
						{
							MessageBox message = MessageBox.createError();
							message.withCaption("Errore").withHtmlMessage("Si è verificato un errore nell'invio, si prega di riprovare. </br>Se il problema persiste contattare l'ufficio tecnico.").withOkButton().open();
							message.getButton(ButtonType.OK).addClickListener(ok->{
								return;
							});
						}
						else
						{
							MessageBox message = MessageBox.createInfo();
							message.withCaption("Attenzione").
							withHtmlMessage(
									"L'integrazione è stata inviata. Per poter verificare l'aggiornamento dello stato si prega di attendere qualche minuto.")
							.withOkButton().open();
							message.getButton(ButtonType.OK).addClickListener(okBtn -> {
								Page.getCurrent().reload();
							});
						}
					} catch (Exception e1) {
						MessageBox message = MessageBox.createError();
						message.withHtmlMessage(
								"A causa di problemi tecnici, non è stato possibile inviare la richiesta pertanto si prega di riprovare. </br>Se il problema persiste contattare l'ufficio tecnico.")
						.withOkButton().open();
						message.getButton(ButtonType.OK).addClickListener(okBtn -> {

							dettaglioUI.setScrollTop(0);
						});

					} 

					}


				});
			}   

			chiudi.setCaption("Chiudi");
			chiudi.addClickListener(evento -> {
				dettaglioIntegrazione.setVisible(false);
				chiudi.setVisible(false);
				invia.setVisible(false);
				dettaglioUI.setScrollTop(0);
				integrazione.getGrid().setEnabled(true);
			});
			
			integrazione.getGrid().setEnabled(false);
		});

		return dettaglio;
	}).setCaption("Dettaglio").setId("focus");

The problem is in addComponetColumn, because the component is add only in last row (see attachment).
Can you help me?
Thank you all and sorry for my English.
18576257.png