2013-07-04 27 views
1

我有2頁。第1頁希望使用導航到第2頁:從頁面導航中傳遞參數並將它們綁定到WP7中的網頁瀏覽器

private void listbox1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
      int index = listbox1.SelectedIndex; 
      String pom = ""; 
      RssDataSet ob = lista.ElementAt(index); 
      pom = pom + ob.description; 
      NavigationService.Navigate(new Uri("/novaStrana.xaml?id="+pom, UriKind.Relative)); 
     } 

它基本上是從爲ListBox走索引,得到一些關於它的信息OB並導航到第二頁。

現在的問題是:我無法獲得第2頁上的「pom」參數。基本上我的OnNavigatedTo方法不會觸發。 Page2頁面如下所示:

public novaStrana() 
     { 

      InitializeComponent();    
     } 

     protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
     { 
      String stuff = ""; 
      base.OnNavigatedTo(e); 

      string msg = ""; 

      if (NavigationContext.QueryString.TryGetValue("msg", out msg)) 
      { 

       stuff = msg; 
      } 
     } 

爲什麼它根本不放火?我知道這一點,因爲我嘗試調試加載次數。

我運行模擬器,點擊我的列表項,調試器顯示我正在初始化Page2,這意味着構造函數正在運行,但一旦構造函數完成就是了。第2頁甚至沒有達到OnNavigatedTo。

感謝您的任何幫助。

編輯: 第2頁:

namespace ZaParsiranje 
{ 
    public partial class novaStrana : PhoneApplicationPage 
    { 

     public novaStrana() 
     { 

      InitializeComponent();    
     } 

     protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
     { 
      String stuff = ""; 
      base.OnNavigatedTo(e); 

      string msg = ""; 

      if (NavigationContext.QueryString.TryGetValue("id", out msg)) 
      { 

       stuff = msg; 
      } 
     } 


    } 
} 

和Page 2的xalm:

<phone:PhoneApplicationPage 
    x:Class="ZaParsiranje.novaStrana" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    FontFamily="{StaticResource PhoneFontFamilyNormal}" 
    FontSize="{StaticResource PhoneFontSizeNormal}" 
    Foreground="{StaticResource PhoneForegroundBrush}" 
    SupportedOrientations="Portrait" Orientation="Portrait" 
    mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480" 
    shell:SystemTray.IsVisible="True" Loaded="PhoneApplicationPage_Loaded"> 

    <!--LayoutRoot is the root grid where all page content is placed--> 
    <Grid x:Name="LayoutRoot" Background="Transparent"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 

     <!--TitlePanel contains the name of the application and page title--> 
     <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> 
      <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/> 
      <TextBlock x:Name="PageTitle" Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> 
     </StackPanel> 

     <!--ContentPanel - place additional content here--> 
     <Grid x:Name="ContentPanel" Grid.Row="1"> 
      <phone:WebBrowser Name="WebBroser1" /> 
     </Grid> 
    </Grid> 

    <!--Sample code showing usage of ApplicationBar--> 
    <!--<phone:PhoneApplicationPage.ApplicationBar> 
     <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> 
      <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/> 
      <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2"/> 
      <shell:ApplicationBar.MenuItems> 
       <shell:ApplicationBarMenuItem Text="MenuItem 1"/> 
       <shell:ApplicationBarMenuItem Text="MenuItem 2"/> 
      </shell:ApplicationBar.MenuItems> 
     </shell:ApplicationBar> 
    </phone:PhoneApplicationPage.ApplicationBar>--> 

</phone:PhoneApplicationPage> 
+0

查看一次你的代碼,你會發現問題在哪裏! –

+0

你是什麼意思? – LTKD

+1

對不起@AshokDamani,但你的評論似乎很無用..真可惜,它是不可能「-1」的評論.. – quetzalcoatl

回答

1

我不能讓Page2上

我的 「聚甲醛」 參數

你正在嘗試在存儲時通過"msg"獲取QueryString的值它與"id"的關鍵。你怎麼能期望得到正確的結果?

只是糾正代碼:

if (NavigationContext.QueryString.TryGetValue("id", out msg)) 
{ 
    stuff = msg; 
} 

編輯

或方式來獲得queryString

烏爾構造函數中得到它

public novaStrana() 
     { 
      InitializeComponent();    

      Loaded += (o, e) => 
      { 
        if (NavigationContext.QueryString.TryGetValue("id", out msg)) 
        { 
         stuff = msg; 
        } 
      } 

     } 

其中stuff & msg定義在構造函數之外(在ur類中)。

+0

回顧一下我的問題,你會發現你到底錯過了什麼。我的OnNavigatedTo未被解僱。 – LTKD

+0

@ user1991181:那不太清楚。當Ashok迴應時,我正要問是否執行了NavigatedTo。 「不開火」可以指代任何事情。如你所見,阿肖克也沒有注意到這一點。請澄清問題的這一部分。 – quetzalcoatl

+0

對,我運行模擬器,點擊我的列表項,調試器向我顯示Page2正在初始化,意味着構造函數正在運行,但一旦構造函數完成就是了。第2頁甚至沒有達到OnNavigatedTo:/ – LTKD

相關問題