RjBFlorida Ответов: 2

Допустимый источник данных должен реализовывать либо ilistsource, либо ienumerable


Непонятно, почему следующий код возвращает "допустимый источник данных должен реализовывать либо IListSource, либо IEnumerable"

public class CGroup<TKey, TValue> 
{
  public TKey Key { get; set; }
  public IEnumerable<TValue> Values { get; set; }
}

//AIT is declared class
var cg = new CGroup<string, AIT>();
cg.Key = "Key Value";
//line below raises error, also tried new List<AIT>();
//Empty list is fine
cg.Values = new List<AIT>(){};
aRepeater.DataSource = cg;
aRepeater.DataBind();


Признателен за любую ввода

Что я уже пробовал:

Я пытался объявить пустой список для cg. Values разными способами, но все равно ошибался.

Tomas Takac

Попробуйте вот что: aRepeater.Источник данных = ХГ.Значения;

2 Ответов

Рейтинг:
6

RjBFlorida

К сожалению, я не смог найти решение для этого, поэтому вместо того, чтобы пытаться создать пустой источник данных со значением ключа (надеялся, что значение ключа будет отображаться "пусто" в списке), я вместо этого установил источник данных в null и использовал метки для отображения "пусто".


Рейтинг:
1

Karthik_Mahalingam

так и должно быть

aRepeater.DataSource = cg.Values;

с Values свойство дает List который относится к типу IEnumerable интерфейс


RjBFlorida

Спасибо за ответ, однако это строка выше этой ошибки:
cg. Values = новый список<ait>(){};

Karthik_Mahalingam

я проверил, он отлично работает в этой линии, может быть, вы что-то упускаете

какое фактическое значение вы ему присваиваете

CHill60

Уверены ли вы, что отлаживаете правильный источник или сообщение об ошибке действительно таково, как вы его сформулировали? Строка кода, которую вы указываете как ошибку, и сообщение об ошибке не совпадают. Сообщение об ошибке со строкой после этого имеет смысл

RjBFlorida

Да, похоже, что сообщение об ошибке относится к строке под ним, но именно там VS останавливается и указывает на ошибку во время отладки.

Karthik_Mahalingam

исправлена ли эта проблема?