If I understand you correctly, you have 3 lists (data/list/template) on your page and you want to have one dataview that is dynamically based on one of the lists by selecting a value via a drop down?
What I would suggest in that case in having three 'listen to' dataviews and work with conditional visibility.
Prerequisite would be that your page has parameter (or use a datasource microflow to create an object). For this object you should then could have an enumeration with 3 values: data, template, list (or whatever will fit the description of the three lists).
When the dataviews are in side of the context of the parameter (nested) you can set up the visibility rule for each of them.
Hope this helps.
Well, a dropdown needs content. So somehow you would need to be able to use an attribute.
For example, if you have a parent with 2 associated children (using a *-* association), in a parent object page.
You might also have another association 'selected_child' between parent and child (*-1).
You can add a reference selector on the parent page using this association and constrain the list of selectable children via an xpath to only display the child objects that are associated via the *-* association. You can then display the selected child object in a dataview.