Inicio > .Net, Curiosidades, Microsoft, Personal, Windows Forms > CheckedListBox con Origen de Datos + ADO.NET

CheckedListBox con Origen de Datos + ADO.NET

18 mayo 2011

Recientemente necesitaba mostrar los datos de una forma Multiple y Selectiva, es decir una fusión de “ComboBox y ListBox”,  lo cúal da como resultado un CheckedListBox.

this.CheckedListBox1.Datasource = dt; // DATATABLE
this.CheckedListBox1.Valuemember = “CAMPO_KEY”;
this.CheckedListBox1.displayMember = “CAMPO_DATO”;

Nota: Miren como escribí las propiedades, las minúsculas y mayúsculas estan mal escritas.

Pero de todas maneras, donde esta el IntelliSense???

Aparte de ello, la descripción del error indica que NO es posible enlazar datos a ese control.

Inclusive en la misma documentación del MSDN, MICROSOFT NOS DICE QUE ESTO NO SE PUEDE, AQUI LES DEJO EL LINK.

“Microsoft: No es posible enlazar datos a CheckedListBox. Utilice ComboBox o ListBox en su lugar para esto. Para obtener más información, vea Cómo: Enlazar un control ComboBox o ListBox de formularios Windows Forms a datos.” Eso es lo que MICROSOFT nos dice.


NOTA: EN REALIDAD LAS PROPIEDADES SI ESTAN AHI, SOLO QUE EL INTELLISENSE NO LAS DETECTA, SEGÚN SE, POR UNA MALA IMPLEMENTACION EN EL ATRIBUTO: 

[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]

[Solución]

La 1ra solución y la más sencilla, seria que escribieras bien, pero si lo que quieres es “QUE EL INTELLISENSE TE MUESTRE CADA UNA DE LAS PROPIEDADES”, entonces haz lo siguiente:  “PERO NO LO RECOMIENDO”

Se debe de crear un componente que herede las funcionalidades básicas del control CheckedListBox, aunque la información del MSDN dice que no se puede, de todas formas decidí comprobarlo.

        [Creamos un nuevo Componente]

[Heredamos del control CheckedListBox]

[Componente creado ]

Jaaaa!!!!!!, no que no??

Listo, ahora podrémos utilizar (Ver) las propiedades:

  • DataSource
  • ValueMember
  • DisplayMember

Enjoy!!!

NOTA: Lo mostrado es un dato curioso ya que mediante la herencia se pudo “ROMPER” ciertos parámetros y conceptos no permitidos.

NOTITA: En contenido del artículo ha sido comprobado con el Framework 2.0, 3.0, 3.5, menos con el Framework 4.0, imagino que el resultado es el mismo.

Seguir

Get every new post delivered to your Inbox.