¡Cómo me lo paso con los ItemsControl!

ItemsControl, la bestia negra.

Prácticamente toca todos los palos. No tiene parangón. Los ItemsControl son un pilar básico de WPF.  En cuanto te acercas a la interfaz, ahí están esperándote con todos sus dientes, afilados como navajas d’Albacete.

Ahora me pongo a hacer un comportamiento de interacción (Interaction Behaviors) a inexplicablemente he acabado luchando a vida o muerte con el jodido ItemsContainerGenerator.

ItemsControlGenerator es como el motor de los ItemsControl. Cuando eso se pone a generar, ¡a ver quién es el dios que lo entiende!

Pues creo que finalmente lo conozco al 90% y todavía sigue sorprendiéndome. El motor de presentación de WPF está pensado por verdaderas máquinas de la programación. Y se nota en cuanto bajas un poco a las profundidades.

Da miedo Confundido

 

image

Ahí tenemos la foto del auténtico Dr. WPF, el maestro. Esta captura es de su web. Una oración por él. Desde 2010, su voz dejó de oírse.  Él domina la bestia con un silbido. WPF se rinde a sus pies.

Volviendo a lo anterior.

Finalmente he conseguido evitar meterme en el lío porque, después de comerme el tarro durante horas, he visto la luz. El DragDropBehavior lo estoy haciendo pasando del ItemContainerGenerator y su endiablada manera de generar contenedores bajo demanda.

A modo de cuaderno de bitácora, te lo cuento, hermoso, para que te acuerdes de lo que sufrías con la complejidad erectísima de WPF.

Oh boy. Pues si echas un vistazo al código fuente de la biblioteca Glass for .NET podrás sacarle fallos al DragDropBehavior.cs. Algo más de 300 de código absolutamente inestable, YESZ!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s