IncrementalLoadingCollection 和带有自定义构造函数的 ViewModel

IncrementalLoadingCollection and ViewModel with custom constructor

我有通过构造函数 (Prism) 注入的 ViewModel。

public class MainPageViewModel : ViewModelBase, IIncrementalSource<Tender>
{
    public async Task<IEnumerable<Tender>> GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken))
    {
        TendersRequest.Offset = pageIndex;
        TendersRequest.Count = pageSize;
        return await _dataService.GetTenders(TendersRequest);
    }


     public MainPageViewModel(IUnityContainer container, IDataService dataService)
     {
         ... 

         var Tenders = new IncrementalLoadingCollection<MainPageViewModel, Tender>(10);
     }
}

但是行 Tenders = new IncrementalLoadingCollection(10);扔 System.InvalidOperationException.

An exception of type 'System.InvalidOperationException' occurred in Microsoft.Toolkit.Uwp.dll but was not handled in user code

Additional information: TSource must have a parameterless constructor

我做错了什么? 如何将 IncrementalLoadingCollection 与自定义构造函数一起使用?

如果您调用 new IncrementalLoadingCollection<MainPageViewModel, Tender>(10),那么该集合将尝试创建一个 MainPageViewModel 的新实例,只有当它具有无参数构造函数时才有效(这显然不是您的情况).解决方法是提供您自己的 MainPageViewModel:

实例
 public MainPageViewModel(IUnityContainer container, IDataService dataService)
 {
     ... 

     var Tenders = new IncrementalLoadingCollection<MainPageViewModel, Tender>(this, 10);
 }