Obtenir les données liées à l'objet de pressée ligne de table - getBindingContext() renvoie undefeind

Dans SAP UI5, j'essaie d'obtenir l'objet de données (dans mon contrôleur) qui est lié à une ligne de la table lorsque l'utilisateur appuie sur elle. De mon point de vue est défini en XML, et mon contrôleur est en JS, bien sûr.

J'ai vérifié Comment obtenir du contenu d'une ligne dans sap.m.table déjà, mais il ne fonctionne pas pour moi, ou il manque quelque chose.

Mon point de vue (d'une partie):

<Panel>
  <Table id="lineItemList" items="{
    path: 'statusJobs>/jobs',
    sorter: {
      path: 'start',
      descending: true
    }
  }">
  <headerToolbar>
    <!-- ... -->
  </headerToolbar>
  <columns>
    <Column hAlign="Left" vAlign="Middle">
      <Label text="Job" />
    </Column>
    <Column hAlign="Center" vAlign="Middle">
      <Label text="Start" />
    </Column>
    <Column hAlign="Center" vAlign="Middle">
      <Label text="End" />
    </Column>
    <Column hAlign="Right" vAlign="Middle">
      <Label text="Success" />
    </Column>
  </columns>
  <ColumnListItem
    type="Navigation"
    press=".handleLineItemPress"
  >
    <Text text="{statusJobs>job}" />
    <Text text="{
      path: 'statusJobs>start',
      formatter:'util.Formatter.Date'}"
    />
    <Text text="{
      path: 'statusJobs>end',
      formatter: 'util.Formatter.Date'}"
    />
    <Text text="{statusJobs>status}"/>
  </ColumnListItem>
</Table>     

La partie pertinente ici est évidemment:

<ColumnListItem
  type="Navigation"
  press=".handleLineItemPress"
>

Et dans mon contrôleur, j'ai ceci:

handleLineItemPress: function(evt) {
  console.log('evt.getSource: ' + evt.getSource());
  console.log('evt.getBindingContext: ' + evt.getSource().getBindingContext());
}

qui des journaux comme suit:

evt.getSource: Élément de sap.m.ColumnListItem#__item11-StatusJobs--lineItemList-0
evt.getBindingContext: undefined

evt.getSource renvoie la ColumnListItem, alors, évidemment, à partir de là, je pouvais utiliser la hiérarchie de l'objet et de récupérer le texte d'une cellule, comme:

evt.getSource().getCells()[0].getText();

Mais cela ne semble pas être la bonne façon et surtout ne pas donner l'ensemble de l'objet ou son ID unique, qui m'arrive de ne pas afficher dans le tableau.

Je suis en quelque sorte manqué la connexion à mon modèle de données, que j'avais tenu plus haut dans le code, dans le <Table> élément, comme suit:

items="{
  path: 'statusJobs>/jobs',
  sorter: {
    path: 'start',
    descending: true
  }
}"

OriginalL'auteur Mathias Conradt | 2014-07-22