Olá,
Você tem um atributo 'onRowSelection', o valor que você dá a este atributo é o nome do evento que é ativado após selecionar a linha.
Crie um método de manipulador de eventos com o mesmo nome que o valor do atributo.
Para um código para desmarcar, por favor, verifique o método EH_ON_ROW_SELECTION na classe CL_BSP_WD_CONTEXT_NODE_TV.
ler tabela ME->SELECTION_TAB com chave TABLE_LINE = LV_ROW_INDEX
busca binária sem transportar campos.
se SY-SUBRC = 0.
-
a linha estava marcada -> desmarque-a
se ME->FILTER_ACTIVE = ABAP_TRUE.
ME->LAST_LINE_ITERATOR->UNMARK( IV_INDEX = LV_ROW_INDEX ).
senão.
ME->COLLECTION_WRAPPER->UNMARK( IV_INDEX = LV_ROW_INDEX ).
limpar ME->SELECTED_INDEX.
fim.
senão.
-
a linha ainda não estava marcada -> marque-a
se ME->FILTER_ACTIVE = ABAP_TRUE.
ME->LAST_LINE_ITERATOR->MARK( IV_INDEX = LV_ROW_INDEX ).
senão.
ME->COLLECTION_WRAPPER->MARK( IV_INDEX = LV_ROW_INDEX ).
ME->SELECTED_INDEX = LV_ROW_INDEX.
fim.
fim.
Espero que isso ajude.
Saudações,
Bhushan