Возможно, это был долгий день, но у меня возникли проблемы с сохранением коллекции, поддерживаемой ASP.NET ViewState, в CompositeControl. Вот упрощенная версия:
public class MyControl : CompositeControl
{
public Collection<MyObject> MyObjectCollection
{
get {
return (Collection<MyObject>)ViewState["coll"] == null ?
new Collection<MyObject>()
: (Collection<MyObject>)ViewState["coll"];
}
set { ViewState["coll"] = value; }
}
}
public partial class TestPage : System.Web.UI.Page
{
protected void btn_Click(object sender, EventArgs e)
{
myControl1.MyObjectCollection.Add(new MyObject());
}
}
Когда кнопка нажата, обработчик события btn_Click выполняется нормально, но установщик MyObjectCollection никогда не вызывается, поэтому новый MyObject () никогда не сохраняется.
Я думаю, у меня просто блондин. Кто-нибудь хочет помочь?