If you look at the data structure I have at the top I've used the same data that is displayed for the first row in the picture example
I personally would have used a tree for that (parent child relationship).
This would allow you to use a tree view as well, or some other hierarchical view.
Or use a combox and a table.
When you do that you can give the index of the item selected in the upper view as the root index for the lower view freeing you from the need to use proxies for separating the data.
But at the end there is no right or wrong, but what best fits your needs.