我正在开发一个 Xamarin Forms 移动应用程序,其中有一个页面包含 SearchBar、ListView 和 Map 控件。列表视图包含地址列表,这些地址在地图上反映为图钉。
当用户在 SearchBar 中键入内容时,ListView 会自动更新(通过 ViewModel 绑定)。过滤列表数据源的 ViewModel 方法看起来像这样......
void FilterList()
{
listDataSource = new ObservableCollection<location>(
locationData.Where(l => l.Address.Contains(searchBar.Text))
);
// ***** Now, update the map pins using the data in listDataSource
}
我想在 ListView 被过滤时更新地图,但不是在每次按键时更新,因为这种情况可能每秒发生多次。本质上,我希望在更新地图之前在每个 FilterList 事件中都有一个“滚动暂停”。在伪代码中...
// ***** Now, update the map pins using the data in listDataSource
if (a previously-requested map update is pending)
{
// Cancel the pending map update request
}
// Request a new map update in 1000ms using [listDataSource]
可以使用以下方法来做到这一点跑表类,可在可移植类库中找到,但我怀疑有一种更干净/更好的方法可以使用Tasks.
谁能推荐一个“更聪明的”PCL兼容方法来做到这一点?
你可以试试 :
await Task.Delay(2000);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)