start with this
the GameState (in this example) holds the list (Array of Actors)
the widget is just a visual of the list (Array)
Actors call Add/Remove Functions on GameState when BeginPlay/Destroyed
the Add/Remove Functions Add the actor to the array and call an EventDispatcher (you can google this)
the widget binds to the event dispatcher and updates its visually accordingly.