2010-12-05 4 views
0

У меня есть список, который мне нужно привязать к списку, который я получаю из API. Список выглядит так:Как связать с элементом управления в ASP.NET ListView

struct DataItem { int level; string name; Guid key }; 
List<DataItem> myList = API.GetList(); 
ListView1.DataSource = myList; 
ListView1.DataBind(); 

Все это отлично подходит для отображения. Однако таблица должна отредактировать значение уровня. Я не уверен, как это сделать. Я пробовал обработчики событий в listView, но они никогда не вызываются. Я попробовал текстовое поле для поля уровня (с Bind и Eval) и обработчиком событий OnTextChanged, но обработчик событий никогда не вызывается. (Я пытался с различными объединениями AutoPostBack и ViewState включен.)

Как я могу программно отредактировать эту структуру данных?

ответ

0

Двусторонняя привязка данных, которую вы пытаетесь реализовать здесь, не будет работать так: List не реализует INotifyPropertyChanged (кто-то меня поправьте, если я ошибаюсь).

Вы можете использовать простой старый DataTable, который может быть двухсторонним-связанным из коробки. Если производительность не является очень важной проблемой, преобразование вашего списка в DataTable (и обратно, в зависимости от того, что вы хотите делать с измененными данными) достаточно просто, вместо того, чтобы бороться с пользовательскими реализациями типов списков.

Смежные вопросы