2011-12-02 61 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模式。 –

相關問題