数据共享在Xaml页面之间

时间:2014-06-24 05:35:30

标签: c# xaml windows-phone-8

我正在开发我的第一个Windows手机应用程序及其天气应用程序。我在主页面上有一个列表,它会显示国家名称和当前温度。现在,当我点击列表中的任何一个国家时,页面是导航到Xaml页面,该页面将显示有关天气状况的详细信息。

但我面临的问题是,当我从那里导航到另一个Xaml页面时,它应该以与之前相同的格式向我提供列表中下一个国家/地区的详细内容。

我能否知道这是怎么可能的,因为我在这个领域很新。

提前致谢

列表代码

 <phone:LongListSelector x:Name="MainLongListSelector" DataContext="{Binding listData}" IsGroupingEnabled="False" >
            <phone:LongListSelector.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Grid.Column="0">
                        <Image Name="condition" Source="{Binding Imagetype}" Height="80"   />
                        <Grid HorizontalAlignment="Center" >
                            <StackPanel Grid.Column="1" HorizontalAlignment="Center" Tap="StackPanel_Tap" Height="100" Width="270" >
                                <TextBlock Name="CountryName" Text="{Binding Country}" FontFamily="Times new roman" TextWrapping='Wrap' Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize="25" Width="250" Height="30"/>

                                <TextBlock Name="Temp" Text="{Binding Temp}" FontFamily="times new roman" TextWrapping="Wrap"
                                       Style="{StaticResource PhoneTextExtraLargeStyle}"
                                       FontSize="20" Width="250" Height="25"
                                       ></TextBlock>
                            </StackPanel>
                        </Grid>
                        <Grid HorizontalAlignment="Right" >
                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Grid.Column="3">
                                <Image Name="Button" Source="{Binding Remove}" Height="75" Width="75" Stretch="None" HorizontalAlignment="Right" Tap="Button_Tap"/>
                            </StackPanel>
                        </Grid>
                    </StackPanel>
                </DataTemplate>
            </phone:LongListSelector.ItemTemplate>
        </phone:LongListSelector>

详细Xaml页面的代码

 <TextBlock HorizontalAlignment="Left" Margin="60,432,0,0" TextWrapping="Wrap" Text="{Binding WindSpeed}" VerticalAlignment="Top"/>
            <TextBlock HorizontalAlignment="Left" Text="{Binding Temperature}" FontFamily="SegoeWPLight" FontSize="240" Margin="44.791,43.086,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="374.478" Height="363.881" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
                <TextBlock.RenderTransform>
                    <CompositeTransform SkewY="0.314" TranslateY="0.741"/>
                </TextBlock.RenderTransform>

            </TextBlock>
            <Image HorizontalAlignment="Left" Height="37" Margin="25,370,0,0" VerticalAlignment="Top" Width="30"/>
            <Image HorizontalAlignment="Left" Height="37" Margin="157,370,0,0" VerticalAlignment="Top" Width="46"/>
            <Image HorizontalAlignment="Left" Height="37" Margin="303,370,0,0" VerticalAlignment="Top" Width="48"/>
        </Grid>
    </StackPanel>

    <!--ContentPanel - place additional content here-->
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,32,12,0" Grid.RowSpan="2">
        <Grid.RowDefinitions>
            <RowDefinition Height="3*"/>
            <RowDefinition/>
        </Grid.RowDefinitions>



        <!--    <StackPanel Margin="12,0,12,0" Grid.RowSpan="2">-->
        <ScrollViewer VerticalScrollBarVisibility ="Disabled" HorizontalScrollBarVisibility="Hidden" Margin="-10,0,10,0" Grid.Row="1">
            <Grid Name="WeeklyUpdate" VerticalAlignment="Top" HorizontalAlignment="Left" Width="1652" Height="233">
                <!-- <Image Name="Image12"  Source="/Images/MenuIcons/w_thunder_cloud_rain.100.png" Height="102" Width="130" HorizontalAlignment="Left" VerticalAlignment="Top"  Margin="1430,0,0,102" MouseEnter="Image12_MouseEnter"/>-->
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="235*"/>
                    <ColumnDefinition Width="231*"/>
                    <ColumnDefinition Width="235*"/>
                    <ColumnDefinition Width="230*"/>
                    <ColumnDefinition Width="235*"/>
                    <ColumnDefinition Width="230*"/>
                    <ColumnDefinition Width="240*"/>
                    <ColumnDefinition Width="0*"/>
                </Grid.ColumnDefinitions>

                <!-- <Image Name="Image12"  Source="/Images/MenuIcons/w_thunder_cloud_rain.100.png" Height="102" Width="130" HorizontalAlignment="Left" VerticalAlignment="Top"  Margin="1430,0,0,102" MouseEnter="Image12_MouseEnter"/>-->
                <Image x:Name="Image1" Source="w_cloud_rain.100.png" Height="102" Width="130" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="54,50,0,0"  />
                <Image x:Name="Image2" Source="w_sun_cloud_wind.180.png" Height="102" Width="130" HorizontalAlignment="Left" VerticalAlignment="Top"  Margin="48,50,0,0" Grid.Column="1" />
                <Image x:Name="Image3" Source="w_cloud_rain.180.png" Height="102" Width="130" HorizontalAlignment="Left" VerticalAlignment="Top"  Margin="60,50,0,0" Grid.Column="2"/>
                <Image x:Name="Image4" Source="w_sun_cloud_wind.100.png" Height="102" Width="130" HorizontalAlignment="Left" VerticalAlignment="Top"  Margin="70,50,0,0"  Grid.Column="3"/>
                <Image x:Name="Image5" Source="w_sun_cloud_wind.140.png" Height="102" Width="130" HorizontalAlignment="Left" VerticalAlignment="Top"  Margin="74,50,0,0"  Grid.Column="4"/>
                <Image x:Name="Image6" Source="w_sun_cloud_wind.180.png" Height="102" Width="130" HorizontalAlignment="Left" VerticalAlignment="Top"  Margin="68,50,0,0"  Grid.Column="5"/>
                <Image x:Name="Image7" Source="w_thunder_cloud_rain.100.png" Height="102" Width="130" HorizontalAlignment="Left" VerticalAlignment="Top"  Margin="63,50,0,0"  Grid.Column="6"/>
                <TextBlock HorizontalAlignment="Left" Margin="25,18,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Text="{Binding Max1}"/>
                <TextBlock HorizontalAlignment="Left" Margin="175,18,0,0" TextWrapping="Wrap" Text="{Binding Min1}" VerticalAlignment="Top"/>
                <TextBlock HorizontalAlignment="Left" Margin="69,152,0,0" TextWrapping="Wrap" Text="Tomorrow" VerticalAlignment="Top"/>
                <TextBlock Grid.Column="1" HorizontalAlignment="Left" Margin="34,18,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Text="{Binding Max2}"/>
                <TextBlock Grid.Column="1" HorizontalAlignment="Left" Margin="161,18,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Text="{Binding Min2}"/>
                <TextBlock Grid.Column="1" HorizontalAlignment="Left" Margin="84,152,0,0" TextWrapping="Wrap" Text="Friday" VerticalAlignment="Top"/>
                <TextBlock HorizontalAlignment="Left" Margin="44,18,0,0" TextWrapping="Wrap" Text="{Binding Max3}" VerticalAlignment="Top" Grid.Column="2" />
                <TextBlock HorizontalAlignment="Left" Margin="168,18,0,0" TextWrapping="Wrap" Text="{Binding Min3}" VerticalAlignment="Top" Grid.Column="2"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="Saturday" VerticalAlignment="Top" Grid.Column="2" Margin="87,152,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Max4}" VerticalAlignment="Top" Grid.Column="3" Margin="38,18,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Min4}" VerticalAlignment="Top" Grid.Column="3" Margin="161,18,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="Sunday" VerticalAlignment="Top" Grid.Column="3" Margin="84,152,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Max5}" VerticalAlignment="Top" Grid.Column="4" Margin="34,18,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Min5}" VerticalAlignment="Top" Grid.Column="4" Margin="178,18,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="Monday" VerticalAlignment="Top" Grid.Column="4" Margin="101,152,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Max6}" VerticalAlignment="Top" Grid.Column="5" Margin="38,18,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Min6}" VerticalAlignment="Bottom" Grid.Column="5" Margin="173,0,0,190"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="Tuesday" VerticalAlignment="Top" Grid.Column="5" Margin="82,152,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Max7}" VerticalAlignment="Top" Grid.Column="6" Margin="39,18,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Min7}" VerticalAlignment="Top" Grid.Column="6" Margin="143,18,0,0"/>
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="Wednesday" VerticalAlignment="Top" Grid.Column="6" Margin="63,152,0,0"/>


            </Grid>
        </ScrollViewer>

我希望根据列表和滑动控件更改此Xaml页面。请帮助我。

由于

1 个答案:

答案 0 :(得分:0)

基本上,您可以在移动到新页面时使用URL传递数据,如前面提到的How to pass values (parameters) between XAML pages?问题所示。

或者您可以将数据存储为单例,并更新&amp;如Passing data from page to page问题所示,从不同的地方阅读。