【问题标题】:WP8 Can't show listbox item after using hardware back buttonWP8使用硬件后退按钮后无法显示列表框项目
【发布时间】:2015-04-24 09:53:57
【问题描述】:

我有两个 ListBox 项目:一个用于显示所有项目,另一个 ListBox 用于仅显示选定项目,现在当我使用硬件后退按钮时,第二个 ListBox 项目没有显示?

我需要做什么才能让ListBox 在返回时可以选择/可点击?

Height="72" TextWrapping="Wrap" Name="txtMSG" Text="TextBox" Width="456"/>

        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="2" Margin="15,10,15,0">
            <ListBox Name="list_location" Tap="list_location_Tap" Foreground="Black">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock x:Name="item_name" Text="{Binding description, Mode=OneWay}" Padding="5,15,5,15" TextWrapping="Wrap" FontSize="{StaticResource PhoneFontSizeLarge}"/>
                    </DataTemplate>
                </ListBox.ItemTemplate>

            </ListBox>

            <ListBox Name="list_locationAdd"  Foreground="Black" Visibility="Collapsed">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock x:Name="item_name" Text="{Binding description, Mode=OneWay}" Padding="5,15,5,15" TextWrapping="Wrap" FontSize="{StaticResource PhoneFontSizeLarge}"/>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

list_locationAdd.Visibility = Visibility.Visible;
list_location.Visibility = Visibility.Collapsed;

if (!list_locationAdd.Items.Contains(list_location.SelectedItem))
{
    list_locationAdd.Items.Add(list_location.SelectedItem);

}

【问题讨论】:

  • 你的意思是第一个列表框在你按下后退按钮后应该有焦点吗?
  • Jon Koivula 爵士,实际上,当用户搜索相关数据时,我正在使用位置 api 显示在第一个列表框中,然后我在第一个列表框中选择一个项目并在第二个列表框中显示所选项目现在很好,当我重新打开我的应用程序时,我想在我重新打开我的应用程序时显示带有项目的第二个列表框?
  • 我猜你将不得不将你的项目保存到 XML 文件或其他东西。返回应用程序后,它不会保存您的列表框项目。
  • Jon Koivula 先生您是对的,但是我如何将列表框项目保存在 Windows 手机中,我尝试将其保存在独立存储中,但它不起作用?

标签: c# visual-studio-2012 windows-phone-8


【解决方案1】:

使用 StorageFile 类创建 XML 文档并将其保存到您的手机中。每次打开应用程序时,它都会在启动时检查您的 xml 文件并填充数据网格。因此,当您对列表框进行更改时,它也应该对 xml 文件进行更改。下次您退出应用程序并再次启动它时,从 xml 文件中读取数据,然后它会像上次一样拥有数据。所以我的回答是:用xml文件把你的数据保存在手机上。

将数据保存到手机:https://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.storagefile.aspx

处理 XML 文档和元素:https://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument%28v=vs.110%29.aspx

【讨论】:

  • 先生,我正在尝试保存 xml 文件,但保存时出错?
  • 什么错误?如果我不知道详细信息,我无能为力
  • 您好 Jon Koivula 先生,感谢您的帮助,我已经解决了我的问题,但先生现在我面临另一个问题,我无法保存所有选定的项目
  • 无法保存怎么办?你是否经历过像这样的所有项目 foreach(Listboxitem item in list_locationAdd.Items){ //将你的项目值保存到 Xelements,最后将它们保存到 XDocument 并保存到文件 }
  • Jon Koivula 爵士我已成功保存项目。但现在的问题是当我返回我的应用程序并选择另一个列表框项目时,前一个项目将从 xml 文件和列表框中删除,并且添加新项目而不是前一个项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-29
  • 2021-11-21
  • 1970-01-01
相关资源
最近更新 更多