Использовать привязку данных.
Если содержимое представления списка хранится внутри объекта, отображаемого в древовидном представлении, вы можете просто привязать его к свойству SelectedItem в дереве.
В противном случае привяжите дерево SelectedItem к свойству в ваших моделях представления (или к вашему окну!) И в установщике этого свойства измените список, связанный со свойством ItemSource представления списка.
Вы можете увидеть эту технику в этой серии в моем блоге пост, на который я ссылался, - это последний пост со ссылкой на скачивание кода, который вам нужно прочитать с самого начала серии, если вы хотите полное объяснение.
РЕДАКТИРОВАТЬ: Вот как я это сделал в одном проекте: (определение GridView удалено, так как оно здесь неактуально)
<TreeView
Name="FolderTree"
Width="300"
ItemsSource="{Binding Root.SubFolders}"
ItemTemplate="{StaticResource FolderTemplate}"/>
<ListView
Name="FileView"
ItemsSource="{Binding ElementName=FolderTree, Path=SelectedItem.Files}">
</ListView>
Список, связанный с представлением ItemsSource в древовидной структуре, состоит из объектов, имеющих 3 свойства: Имя (которое связано с TextBlock в FolderTemplate), SubFolders (которое также связано со свойством HierarchicalDataTemplate.ItemsSource) и Файлы, которые связаны в ListView, используя {Binding ElementName=FolderTree, Path=SelectedItem.Files}
Обратите внимание, что ни один из списков не является наблюдаемыми коллекциями (потому что в этом проекте они никогда не изменяются), но загружаются лениво (по требованию) получателями свойств (потому что в этом проекте они дороги для загрузки).