我正在为WinRT迁移app。在旧版应用中,使用了WebClient
。通过这个WebClient
,它下载数据然后将它们绑定到ui。在新的应用程序中,我想做同样的事情。但我发现的唯一方法是使用HttpClient
,这是必须等待的。这意味着我下载文件,在下载完成之前,程序尝试绑定数据和程序崩溃。有选项,如何同步下载流/文件?我等待等待操作,如同步操作,程序/线程将“暂停”直到完成,但显然不是。
答案 0 :(得分:1)
您可以将模型用于实现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));
}