2016-12-04 22 views
0

我有通過構造函數(棱鏡)注入的ViewModel。IncrementalLoadingCollection和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); 
    } 
} 

但是Line 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自定義構造函數?

回答

1

如果您致電new IncrementalLoadingCollection<MainPageViewModel, Tender>(10),則該集合將嘗試創建一個MainPageViewModel的新實例,該實例只有在具有無參數構造函數(顯然不適用於您)時才起作用。解決方法是提供您自己的實例MainPageViewModel

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

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

這是工作,謝謝! –

相關問題