Может ли это быть потому, что я изменил список с помощью метода Add ()?
В двух словах, да. .Add()
изменяет список, а свойство Set действует в списке как часть набора.
Чтобы выполнить то, что вы пытаетесь сделать здесь, я бы создал унаследованный тип из List, чтобы я мог внедрить код в методы Add
Remove
(ext, есть другие). Как:
//not syntatically correct sorry
public class MyList : List<string>
{
public override Add(string NewItem)
{
//do a extra peristance step here
//
me.Add(NewItem);
}
}
Или есть класс, который упаковывает приватный List <> и управляет методами Add / Remove, например:
public class MyList
{
private List<string> listItems { get; set; }
//don't expose the list in a mutable state, IEnumerable instead
public IEnumerable<string> Items { get { return this.listItems; } }
public void Add(string NewItem)
{
this.ListItems.Add(NewItem);
}
}
Затем просто замените List на этот тип в классе уровня своей страницы.
Между прочим, сохранение значения ViewState
увеличивает объем информации, которую вы должны посылать по сети по каждой загрузке страницы. Вы рассматривали Session
, или Cache
объект?