如何在WinRT中同步下载数据
本文关键字:同步 下载 数据 WinRT | 更新日期: 2023-09-27 18:27:44
我正在为WinRT迁移应用程序。在旧的应用程序中使用了WebClient
。通过这个WebClient
,它下载数据a,然后将它们绑定到ui。在新的应用程序中,我想做同样的事情。但我找到的唯一方法是使用HttpClient
,这是必须等待的。这意味着我允许下载文件,在下载完成之前,程序试图绑定数据,程序崩溃。是否有选项,如何同步下载流/文件?我坚持等待的操作就像同步操作,程序/线程会"暂停"直到它完成,但显然不是。
您可以为实现INotifyPropertyChanged 的数据使用模型
private List<string> _myList;
public List<string> MyList
{
get { return _myList; }
set
{
if (Equals(value, _myList)) return;
_myList = value;
OnPropertyChanged();
}
}
当你用异步下载数据时,你需要这样做:
var result = await ...//download and parse data
MyList = result.Items;
在XAML中,您需要绑定到MyList。这将触发绑定进行更新。
INotifyPropertyChanged实现如下所示:
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}