miércoles, 30 de noviembre de 2011

Controles personalizados, databinding y tabs

Apunte rápido, truco aún más rápido, para que no se me olvide.

Situación

Tenemos un control personalizado al que le asignamos el valor mediante databinding, hasta aquí todo normal.

Metemos el control personalizado en la primera pestaña del control de pestañas de .Net y hasta aquí, todo normal.

Metemos el control en otra pestaña (que no sea la primera, como podemos imaginar) y cuando accedemos a la pestaña en cuestión, el control NO tiene el valor asignado mediante el databinding.

Al turrón

No voy a entrar en mucho detalle, ya que la “solución” adoptada ha sido bastante sencilla, queda pendiente una investigación más ‘a fondo’ para ver si realmente el problema está en al gestión de la información que hace el control Tab (y todos los que hereden de él) o el problema está en el diseño del control personalizado.

No me hago de rogar, la solución ha sido “refrescar” el “BindingContext” del control personalizado.

El trozo de código que he implementado sería:

myCheckListBox.BindingContext = this.BindingContext;

En el caso concreto que me ocupaba, el databinding se realizaba sobre un control incluido dentro del control personalizado, con lo que en la rutina de carga, ha sido suficiente añadir:

this.ListaValores.BindingContext = this.BindingContext;

Fin de la historia.

No hay comentarios: