Using a Repeater for Multi-level Accordion Navigation?

Here is a simplified accordion repeater, which uses no numbers or separate classification scheme in the repeater table.

This is the repeater structure:

All Level 1 items must have text in Level1 and empty cells in Level2 and Level3.
All Level 2 items must have parent in Level1, text in Level2 and empty Level3.
All Level 3 items must have grandparent in Level1, parent in Level2 and text in Level3.

As you can see, there is more text involved, so the setup trades off elegance for simplicity, albeit more copy & pasting. Level ownership is easy to understand, and alphabetical sorting (within levels) is still maintained.

Handling item clicks became easier and more elegant, but the filters a bit more complicated. For instance, to determine if an item is Level 1, you have to test for an empty cell in the Level2 column. To “open” a Level 1 item, it has to show all the Level 1 items and all its own child Level 2 items–but not anything else. Thus filter for “is Level 1 or (Level 2 and child of me)”. This is the click code:

…and what the filter code looks like:

…So I had to learn and pay attention to the difference between [[TargetItem.Value]] and [[Item.Value]]
Basically, in a filter the TargetItem refers to the entire repeater list; the “target” is the repeater. Item refers to a repeater cell, and in this case, since the command is coming from within the repeater cell, it basically means “my stuff” as opposed to “other rows’ stuff” --if that makes sense.