Windows phone 7 从页面导航传递参数并将其绑定到WP7中的webbrowser

Windows phone 7 从页面导航传递参数并将其绑定到WP7中的webbrowser,windows-phone-7,navigation,webbrowser-control,Windows Phone 7,Navigation,Webbrowser Control,我有两页。Page1希望使用以下内容导航到第2页: private void listbox1_SelectionChanged(object sender, SelectionChangedEventArgs e) { int index = listbox1.SelectedIndex; String pom = ""; RssDataSet ob = lista.ElementAt(index);

我有两页。Page1希望使用以下内容导航到第2页:

 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));
        }
它基本上是从listbox1中获取索引,从ob中获取一些关于它的信息,然后导航到第2页

现在的问题是:我无法在第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页:

以及第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>

我无法在第2页获取我的“pom”参数

使用
“id”
键存储QueryString时,您试图通过
“msg”
获取QueryString的值。你怎么能期望得到正确的结果

只需更正您的代码:

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

或者获取
查询字符串的方法:

在你的构造器中得到它

public novaStrana()
        {
            InitializeComponent();            

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

        }
其中
stuff
msg
是在构造函数之外(在ur类中)定义的

我无法在第2页获取我的“pom”参数

使用
“id”
键存储QueryString时,您试图通过
“msg”
获取QueryString的值。你怎么能期望得到正确的结果

只需更正您的代码:

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

或者获取
查询字符串的方法:

在你的构造器中得到它

public novaStrana()
        {
            InitializeComponent();            

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

        }


如果
stuff
&
msg
是在构造函数之外定义的(在你的类中)。

检查你的代码一次,你就会发现问题出在哪里!你所说的评论到底是什么意思?我很抱歉@AshokDamani,但你的评论似乎毫无用处。。很遗憾,不可能用“-1”来评论……不,老实说,我在这里发帖的唯一原因是因为我一直在为此伤脑筋。是的,我是这方面的初学者。如果你是一个经验丰富的开发人员,为什么不直接指导我呢@Quetzalcatl查看我的解决方案查看您的代码一次,您将发现问题所在!你所说的评论到底是什么意思?我很抱歉@AshokDamani,但你的评论似乎毫无用处。。很遗憾,不可能用“-1”来评论……不,老实说,我在这里发帖的唯一原因是因为我一直在为此伤脑筋。是的,我是这方面的初学者。如果你是一个经验丰富的开发人员,为什么不直接指导我呢@Quetzalcatl查看我的解决方案回顾一下我的问题,你会发现你在这里遗漏了什么。我的OnNavigatedTo没有被解雇。@user1991181:还不清楚。我正要问是否执行了NavigatedTo,Ashok回答。“不开火”可以指任何东西。正如你所见,Ashok也没有注意到这一点。请澄清问题的这一部分。好的,我运行emulator,单击我的列表项,调试器显示Page2正在初始化,这意味着构造函数正在运行,但一旦构造函数完成,就完成了。第2页甚至没有到达OnNavigatedTo:/Ok!因此,请在问题中包含此描述。现在,你的问题看起来像“为什么我不获取我的参数”,Ashok对此做出了完美的回答。请相应地编辑问题和标题。@user1991181那么我似乎找不到u'v提供的代码的问题出在哪里了回顾我的问题一次,你会发现你在这里遗漏了什么。我的OnNavigatedTo没有被解雇。@user1991181:还不清楚。我正要问是否执行了NavigatedTo,Ashok回答。“不开火”可以指任何东西。正如你所见,Ashok也没有注意到这一点。请澄清问题的这一部分。好的,我运行emulator,单击我的列表项,调试器显示Page2正在初始化,这意味着构造函数正在运行,但一旦构造函数完成,就完成了。第2页甚至没有到达OnNavigatedTo:/Ok!因此,请在问题中包含此描述。现在,你的问题看起来像“为什么我不获取我的参数”,Ashok对此做出了完美的回答。请相应地编辑问题和标题。@user1991181那么我似乎找不到u'v提供的代码的问题所在