列表视图有时不显示来自我的DataSource.cs的数据

本文关键字:DataSource 我的 cs 数据 自我 视图 显示 列表 | 更新日期: 2023-09-27 18:03:19

我是WinRT开发的新手。我试图将数据从我的数据源绑定到ListView。但是当我使用

时出现了问题
var file = await ApplicationData.Current.LocalFolder.GetFileAsync("tasks.xml");
var readStream = await FileIO.ReadTextAsync(file);

如果我使用这段代码,那么应用程序有时不会在ListView中显示数据(它真的是随机的,有时它显示所有内容,有时在ListView中不显示任何内容)

当我从数据源中删除这段代码时,一切都运行良好。

我有这个数据源类(datasource .cs)

public class InboxPageViewModel
{
    public List<Task> Items { get; set; }
    public InboxPageViewModel()
    {
        GetTasks();
    }
    private async void GetTasks()
    {
        try
        {
            var file = await ApplicationData.Current.LocalFolder.GetFileAsync("tasks.xml");
            var readStream = await FileIO.ReadTextAsync(file);
            var tasksList = new List<Task>
            {
                new Task { Name = "a", DueDate = "b", Project = "c", Context = "d"},
            };
            Items = tasksList;
        }
        catch (Exception ex)
        {
            new MessageDialog(ex.Message).ShowAsync();
        }
    }
}
public class Task
{
    public string Name { get; set; }
    public string Category { get; set; }
    public string DueDate { get; set; }
    public string Project { get; set; }
    public string Context { get; set; }
    public string Note { get; set; }
    public string IsFinished { get; set; }
}

列表视图有时不显示来自我的DataSource.cs的数据

永远不要使用async void方法(除非你正在编写事件处理程序)。

你也不应该从构造函数中调用async方法,更多信息请阅读Stephen Cleary的文章