在windows RT应用程序中使用c#访问页面时填充列表视图

本文关键字:填充 视图 列表 访问 RT windows 应用程序 | 更新日期: 2023-09-27 18:16:29

我试图从一个文件中填充包含不同动物名称的列表视图。我无法确定要连接到哪个事件,以便在导航到特定页面时填充列表视图。由于我正在使用异步方法从文件中读取值,我想知道这是否可能是问题的一些来源。

 private async void pageRoot_LoadedAsync(object sender, RoutedEventArgs e)
    {
      try
        {
            await GetNameOfAllAnimalsAsync();
        }
        catch (ArgumentNullException)
        {
        } 
    }
 private async Task GetNameOfAllAnimalsAsync()
    {
        var animalIo = new AnimalIo();
        var animalNames=await animalIo.GetAllAnimalNames(DateTime.Now);
        if (animalNames != null)
        {
            foreach (var animalName in animalNames)
            {
                if (itemListView.Items != null) 
                    itemListView.Items.Add(animalName);
            }
        }
    }

现在我正在使用页面加载事件。这不会填充列表视图中的名称。它只显示黑盒子。此外,当页面第二次加载时,显示了名称,但所选项目始终为空。

我是一个新手,所以请原谅不正确的术语用法。

在windows RT应用程序中使用c#访问页面时填充列表视图

不要使用foreach,试试下面的代码

ItemListView.Items = animalNames;

关于你的代码,可能主要的问题是IF表达式,检查是否Items不是null

从OnLoaded转换到OnNavigatedTo对我来说是有效的。这是我的代码:

    protected override async void OnNavigatedTo(NavigationEventArgs e)
       {
            try
            {
                await GetNameOfAllAnimalsAsync();
            }
            catch (ArgumentNullException)
            {
            } 
        base.OnNavigatedTo(e);
      }