2011-12-02 68 views
0

我找到的Silverlight框架控制可以说,第1页,在一个面板Treeview而在另一个面板Frame一个Silverlight 4应用程序导航到其他页面。 当Treeview节点被选择它触发在UserControl CS文件,它是后面的代码为Treeview的事件。 如何调用第1页的Frame导航到其他URI?从另一个CS文件

回答

0

最简单的方法是指定一个NameFrame和通过自动生成字段访问它。

如果我给你的权利,这应该工作:

用户控制的

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); 
} 
+0

我做了以下内容到树形视图和框架所在的主页URL:MainPage rootPage = App.Current.RootVisual as MainPage;然后string url = HtmlPage.Document.DocumentUri.ToString();问题是我想在主页上有一个框架导航某处。我不想导航到主页我希望主页myframe导航到框架内的页面。不知道如何找到框架控制? – rbucha

+0

@rbucha按照我的示例:设置'X:NAME = “框架”'您'Frame'然后'rootPage.frame'将是框架。但是,这是一个非常糟糕的设计:MainPage的部分不应直接与其他部分交互。更好的方法包括在用户控件上引发事件并在MainPage上处理它们或使用MVVM模式。 –

相关问题