Tranquilo, yo sólo puedo decirte que el interés de ayudar es directamente proporcional al empeño que se le da a la explicación del problema.
Tu no explicaste mucho, y dado eso es más fácil decirte que consultes el manual a tratar de adivinar o leer tu mente para conocer exactamente lo que estás haciendo, etc.
Si hubieras explicado a detalle, con código real y no con ejemplos incompletos podríamos haber abordado el tema de otro modo, sin embargo sólo podemos hacer suposiciones con lo que mostraste al inicio.
Ahora, si pones todo código y sólo dices "no se qué estoy haciendo mal, ¿alguna idea?" pues tampoco es de utilidad, no es posible ejecutar el código mentalmente porque no somos maquinas que leen código y resuelven problemas.
Mientras más detalles compartas más interés habrá en orientarte como lo merece tu problema.
Saludos.