DataItem no Repeater.Items é sempre nulo

Estou definindo o DataSource do meu repetidor como uma Lista (MyProducts é uma classe simples, consistindo apenas em get / setters).

Depois disso e DataBind (), posso ver no modo de depuração que o DataItem de cada Repeater.Items é nulo. Ao criar um postback e tentar atualizar MyProducts, o Repeater.Items [n] .DataItem ainda é nulo e não consigo convertê-lo para realizar meu trabalho.

Por que o DataItem não está definido em cada RepeaterItem, quando vinculo meu repetidor? Não consigo descobrir / pesquisar no Google. Todos os outros aspectos do meu código funcionam corretamente (saída de dados de MyProducts para aspx, usando, por exemplo:

<asp:TextBox runat="server" id="q" Text='<%# DataBinder.Eval(Container.DataItem, "Quantity")%>'></asp:TextBox>

Mais código:

public class MyProducts
    {
        public string Number
        {
            get; set;
        }

        public decimal Price
        {
            get; set;
        }

        public decimal Quantity
        {
            get; set;
        }

        public decimal Total
        {
            get { return Quantity * Price; }
        }
    }

Gerando:

public List<MyProducts> TheProducts
{
 get { // Invoking webservice, getting response as xml and converting it to a list of MyProducts }
}

Meu controle de usuário:

// Bind products in cart
r.DataSource = TheProducts;
r.DataBind();
// Debugging "r.Items[n].DataItem" now shows "null", eventhough all objects has been correctly binded

Edite # 2, as informações de depuração. O DataSource é carregado corretamente, mas Repeater.Items [3] .DataItem é nulo. Deve ter um valor, certo?captura de tela

Edit # 3, eu o comprei agora, pensei que o DataItem estivesse sempre acessível quando o DataSource estiver definido e não pensei em incluir o código completo (tentei acessá-lo no Page_Load).

Depois que o usuário editou um valor de quantidade, eu desejei salvar a nova quantidade para um MyProducts. Eu o resolvi colocando um campo oculto que contém o ID de MyProducts, para que eu possa procurá-lo manualmente e obter o objeto MyProducts a partir daí.

Graças a emremp, Mark Avenius e todos os outros que participaram.

questionAnswers(2)

yourAnswerToTheQuestion