2009-09-30 16 views
8

Giả sử tôi có ứng dụng C# Silverlight 3 với một số trang. Trang đầu tiên được gọi là Trang chủ và trang thứ hai được gọi là Chi tiết. Cách duy nhất để điều hướng đến chi tiết là lập trình. Làm thế nào để tôi làm điều này?! Nhìn khắp mọi nơi cho câu trả lời và tất cả tôi đã tìm thấy là uri XAML triển khai mapper ....C# Silverlight 3 - Điều hướng theo lập trình giữa các trang?

Trợ giúp rất nhiều đánh giá cao

+0

Phiên bản Silverlight nào? – BigBlondeViking

+0

Silverlight 3 ........... – Goober

Trả lời

7

Bạn đã thử các NavigationService?

this.NavigationService.Navigate (new Uri ("Details.xaml", UriKind.Relative));

+0

có, chỉ cần nói với tôi rằng trang không tồn tại ....... khi có. – Goober

+0

Trong Silverlight URI reverenses có liên quan đến XAP. Uri cho trang chi tiết (nếu nó nằm trong thư mục gốc của dự án của bạn) phải là 'mới Uri ("/ Details.xaml", UriKind.Relative) –

+0

Tôi đang nói với bạn 100% điều này không hoạt động. Mẫu ứng dụng doanh nghiệp Silverlight hoàn toàn mới, Cố gắng điều hướng đến nghĩa đen bất kỳ trang nào không hoạt động bằng cách sử dụng phương thức đó. – Goober

7

C#:

this.navContent.Navigate(new Uri("Welcome", UriKind.Relative)); 

XAML:

<navigation:Frame 
    x:Name="navContent" 
    HorizontalContentAlignment="Stretch" 
    VerticalContentAlignment="Stretch" 
    Source="Welcome"> 
    <navigation:Frame.UriMapper> 
     <uriMapper:UriMapper> 
      <uriMapper:UriMapping Uri="Welcome" MappedUri="/Views/Welcome.xaml" /> 
      <uriMapper:UriMapping Uri="Profile" MappedUri="/Views/Profile.xaml" /> 
      <uriMapper:UriMapping Uri="Details/{id}" MappedUri="/Views/Details.xaml?photoid={id}" /> 
     </uriMapper:UriMapper> 
    </navigation:Frame.UriMapper> 
</navigation:Frame> 

Ngay cả "chi tiết" trang của bạn nên được ánh xạ (mặc dù những gì bạn nói.)

7

C# App.Current.Host. NavigationState = "/ Chào mừng";

XAML

+0

Điều này làm việc tuyệt vời trong một ViewModel –

+0

Điều này đang hoạt động !!!!!! – 1myb

2

Hãy thử sử dụng này. Điều này làm việc cho tôi.

((System.Windows.Controls.Frame) (this.Parent)) Điều hướng (new Uri ("/ Import", UriKind.Relative));

5

Giải pháp tốt nhất là:

Thêm mã này để App.xaml.cs của bạn:

private static Grid root; 

private void Application_Startup(object sender, StartupEventArgs e) 
{ 
    root = new Grid(); 
    root.Children.Add(new MainPage()); 

    this.RootVisual = root; 
} 

public static void Navigate(UserControl newPage) 
{ 
    UserControl oldPage = root.Children[0] as UserControl; 

    root.Children.Add(newPage); 
    root.Children.Remove(oldPage); 
} 

Và sau đó, để di chuyển giữa các trang, bạn sẽ chỉ phải gọi:

App.Navigate(new OtherSamplePage()); 
+0

Tôi đã tìm kiếm ở mọi nơi cho câu trả lời này +3 nếu tôi có thể – MJ33

Các vấn đề liên quan