【问题标题】:Data Sharing In between Xaml pagesXaml 页面之间的数据共享
【发布时间】:2014-06-24 14:22:53
【问题描述】:

我正在开发我的第一个 windows phone 应用程序和它的天气应用程序。我在主页上有一个列表,它将显示国家名称和当前温度。现在,当我点击列表中的任何一个国家时,页面是导航到 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 页面。请帮助我。

谢谢

【问题讨论】:

  • 给我们看一些代码 No code No FUN......
  • @DhavalPatel...我已经编辑了问题并添加了代码,请检查一次。
  • 你会如何选择列表中的项目?\
  • 我正在使用一个事件来获取所选项目,StackPanel_Tap,是的,但我再次面临这个问题,它只会显示最后输入的城市,而不是选择时的其他城市。跨度>
  • 我认为你必须使用 LongListSelector 的 SelectedItme 属性

标签: c# xaml windows-phone-8


【解决方案1】:

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

或者您可以将数据存储在单例中,并从不同的地方更新和读取它,如Passing data from page to page问题所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多