Skip to content

Uno.Extensions MVUX PaginatedAsync (BindableListFeed) does not trigger incremental loading #376

@luckypong

Description

@luckypong

Description

TableView currently supports incremental loading through ISupportIncrementalLoading.

Internally, CollectionView forwards incremental loading requests as follows:

public IAsyncOperation<LoadMoreItemsResult>? LoadMoreItemsAsync(uint count)
{
    return (_source as ISupportIncrementalLoading)?.LoadMoreItemsAsync(count);
}

public bool HasMoreItems =>
    (_source as ISupportIncrementalLoading)?.HasMoreItems ?? false;

However, when using Uno.Extensions MVUX:

public IListFeed<MyItem> Items =>
    ListFeed.PaginatedAsync(...);

the runtime source becomes:

Uno.Extensions.Reactive.Bindings.BindableListFeed<T>

which does not implement ISupportIncrementalLoading.

As a result:

_source as ISupportIncrementalLoading

returns null and TableView never requests additional pages.

Expected behavior

TableView should support Uno.Extensions MVUX paginated feeds similarly to ListView, or provide an extensibility point for custom incremental loading providers.

Environment

  • Uno Platform
  • Uno.Extensions.Reactive
  • WinUI.TableView

Contribution:

  • I am willing to submit a PR to fix this issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions