使用C#在Windows RT app中访问页面时填充列表视图

时间:2013-05-31 15:08:00

标签: c# listview windows-store-apps

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

 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);
            }
        }
    }

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

我是新手,所以请原谅错误使用条款。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

不要使用foreach,请尝试使用此代码

ItemListView.Items = animalNames;

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

答案 1 :(得分:0)

从OnLoaded转换为OnNavigatedTo为我工作。这是我的代码:

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

            } 

        base.OnNavigatedTo(e);

      }