如何从网络访问列表,并将列表显示为设备上的列表控件

本文关键字:列表 控件 列表显示 网络 访问 | 更新日期: 2023-09-27 18:15:44

我想从我在我的网站上托管的csv/txt文件创建一个列表控件,csv/txt可以编辑添加新项目(在行中)每行有4列,

这个文件应该在应用程序第一次运行时下载,以后可以更新。

我希望这个列表是这样的:

Title-(行第一列)
副标题-(行第二列)

当用户单击列表项时,会打开一个页面,显示该单独页面中的所有4项。我还希望该列表是可搜索的第一项

如何从网络访问列表,并将列表显示为设备上的列表控件

您需要下载文件,解析它,显示为列表,使显示的列表项可点击,点击触发导航到您的集合项的详细信息视图,并有一个搜索框,对吗?

    要下载文件-你可以使用WebClient。DownloadStringAsync
  1. 解析它-你可以使用string.Split(''n')和string.Split(',')
  2. 要显示为列表-您可以将表示csv文件行的解析对象放在集合中-就像列表一样,然后使用ListBox控件并将其ItemsSource设置为该列表。此外,您还需要定义ItemTemplate以在两列中显示字符串,例如

    <ListBox.ItemTemplate>
        <DataTemplate>
            <!-- The DataContext here is a string array, so binding to [i] will bind to its string at position i -->
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding [0]}" Width="240" TextWrapping="Wrap"/>
                <TextBlock Text="{Binding [1]}" Width="240" TextWrapping="Wrap"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
    
  3. 要处理点击-最好的方法是使用带有命令绑定的按钮,但简单的解决方案也可以工作-您只需处理ListBox。SelectionChanged事件和SelectedItem是什么被点击-你必须重写OnNavigated在你的页面和设置ListBox。

  4. 当你导航到允许再次点击相同的项目时,SelectedItem返回null。
  5. 导航到另一个页面的所有细节-你可以调用NavigationService。导航(new Uri(string. format ("/DetailsPage.xaml?col1={0}&col2={1}&col3={2}&col4={3}"), Uri. escapeuristring (((string[])(lb.SelectedItem))[0]),…[1,2,3]), UriKind.Relative),然后在OnNavigatedTo中解析DetailsPage类的覆盖Uri。
  6. 允许在ListBox中搜索,你可以使用一个CollectionViewSource对象作为ListBox的ItemsSource,并允许用户输入搜索查询,这会更新过滤器,导致ListBox的内容刷新。