Ни необязательные параметры, ни перегрузка функций не поддерживаются в Go. Go поддерживает переменное число параметров: Передача аргументов в ... parameters
Вы передаете PagingList в свой RenderListingsRows, который не реализует IEnumerable.
В общем, чтобы PagingList был расширением над BindingList, он должен реализовывать все интерфейсы, которые реализует BindingList. Но в настоящее время он не реализует ни один из них.
Вы должны либо унаследовать PagingList от BindingList, либо реализовать все эти интерфейсы, даже если просто вызывая методы объекта Collection.
Или вы можете просто написать для (var элемент в списке. Коллекция)
Если ваша коллекция учетных записей реализует IList
PagedList<AccountInfo> paged = new PagedList<AccountInfo>();
paged.Collection = new BindingList<AccountInfo>((IList<AccountInfo>)accounts);
Send the binding list to the RenderListingsRows not the paging list. PagingList does not extend BindingList it uses composision instead. Hence the issue.
Example below.
public class PagingList<T>
{
public BindingList<T> Collection { get; set; }
public int Count { get; set; }
public PagingList()
{
Collection = new BindingList<T>();
Count = 0;
}
}
public void CallRenderListingsRows()
{
var pagingList = new PagingList<PostcodeDetail>();
RenderListingsRows(pagingList.Collection);
}
protected void RenderListingsRows(BindingList<PostcodeDetail> list)
{
foreach (var item in list)
{
//render stuff
}
}
BindingList
реализует IEnumerable
, но не все IEnumerable
являются списками привязки (фактически, большинство - нет).
Вы должны иметь возможность создать новый BindingList и добавить элементы в перечисляемый экземпляр.