在Windows手机中将数据从一个视图传递到另一个视图

时间:2013-01-16 00:01:38

标签: c# xaml windows-phone-7

我有一个充满JSON数据的列表框。现在,当我按下该列表框中的某个项目时,我应该转到有关该项目的详细页面。我的列表框中有这个代码。

<ListBox.ItemTemplate>
                            <DataTemplate>
                                <Grid Margin="0,5,0,0">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition/>
                                        <ColumnDefinition Width="350"/>
                                    </Grid.ColumnDefinitions>
                                    <Image Source="{Binding imgurl}" MaxHeight="110" MaxWidth="110" />
                                    <TextBlock Grid.Column="1" Text="{Binding title}" TextWrapping="Wrap" Margin="10,0,2,0" FontSize="20" />
                                </Grid>
                            </DataTemplate>
                        </ListBox.ItemTemplate>

现在导航我在PhoneList_SelectionChanged

中执行此操作
NavigationService.Navigate(new Uri("/Views/NewsDetail.xaml", UriKind.Relative));

我知道我可以使用?value1=testtest将值传递给此URI 但我现在的问题是,我可以将这些值传递给URI吗?

任何帮助?

1 个答案:

答案 0 :(得分:0)

在选择更改事件中,您必须知道您选择的对象。代码结构如下:

PhoneModel model = PhoneList.SelectedItem as PhoneModel;
NavigationService.Navigate(new Uri("/Views/NewsDetail.xaml?value1="+model.title, UriKind.Relative));

PhoneModel是您绑定到listBox的项目列表的模型。上面的代码片段在导航中发送标题。您必须将其替换为您的要求。

要在导航中发送多个参数,您必须遵循以下模式:

PhoneModel model = PhoneList.SelectedItem as PhoneModel;
NavigationService.Navigate(new Uri("/Views/NewsDetail.xaml?value1="+model.title+"&value2="+model.imgurl, UriKind.Relative));