public SubredditViewModel(Subreddit s)
{
_posts = new IncrementalObservableCollection<PostViewModel>(
() => { return _subreddit.Posts.HasMore; },
(uint count) =>
{
Func<Task<LoadMoreItemsResult>> taskFunc = async () =>
{
this.IsLoading = true;
int newPosts = await _subreddit.Posts.More();
int currentPostCount = _posts.Count;
for (int i = currentPostCount; i < _subreddit.Posts.Count; i++)
{
_posts.Add(new PostViewModel(_subreddit.Posts[i]));
}
this.IsLoading = false;
return new LoadMoreItemsResult()
{
Count = (uint)newPosts
};
};
Task<LoadMoreItemsResult> loadMorePostsTask = taskFunc();
return loadMorePostsTask.AsAsyncOperation<LoadMoreItemsResult>();
}
);
_subreddit = s;
_refreshCommand = new RelayCommand(RefreshAction);
_loadMoreCommand = new RelayCommand(LoadMoreAction);
}