【发布时间】:2016-09-26 15:49:18
【问题描述】:
我的问题是 ProgressRing 一直在运行。我使用 MVVM。 ProgressRing 只能在应用获取新数据时激活。
我在 VM 中有代码(我更新了 ViewModel):
public class MainPageViewModel : ObservableCollection<AdModel>, ISupportIncrementalLoading{
private Visibility _loaderVisibility;
public Visibility LoaderVisibility
{
get { return _loaderVisibility; }
private set
{
_loaderVisibility = value;
}}
public IAsyncOperation<LoadMoreItemsResult> LoadMoreItemsAsync(uint count)
{
CoreDispatcher coreDispatcher = Window.Current.Dispatcher;
return Task.Run<LoadMoreItemsResult>(async () =>
{
await coreDispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
this.LoaderVisibility = Visibility.Visible;
});
var NewAds = new ObservableCollection<AdModel>();
do{NewAds = await LoadAds();//get data from API}
while (NewAds == null);
await coreDispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
foreach (AdModel item in NewAds)
{
this.Add(item);
}
this.LoaderVisibility = Visibility.Collapsed;
});
return new LoadMoreItemsResult() { Count = count };
}).AsAsyncOperation<LoadMoreItemsResult>();}}
【问题讨论】:
标签: xaml windows-phone-8 mvvm windows-runtime