Hey there, sounds like a bit of a tree selector functionality, so maybe the Tree Node would work?
Otherwise you could play with having a list view and dynamic classes based on the selection and/or deselection of items. for example using a class for selected items and a class for not-selected items.