Самый простой способ - присвоить Name
для Frame
и получить к нему доступ через автоматически сгенерированное поле.
Если я правильно понял, это должно сработать:
XAML пользовательского элемента управления:
<UserControl>
<StackPanel>
<StackPanel>
<TreeView SelectionChanged="treeView_SelectionChanged"/>
</StackPanel>
<StackPanel>
<!-- Additional Frame setup omitted for brevity -->
<Frame x:Name="frame"/>
</StackPanel>
</StackPanel>
</UserControl>
Код позади пользовательского элемента управления:
void treeView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var targetUri = this.GetTargetUriFromSelectedItem(e); // TODO: implement your target uri retrieval logic
this.frame.Navigate(targetUri);
}