dataGridView que contenga demasiadas columnas a editar, en el ejemplo anterior vimos cmo podamos personalizarlo. Ahora veremos cmo podemos crear algo ms funcional utilizando un control ListBox enlazado a datos. Para no complicarnos con la navegacin y funcionalidades propias del mantenimiento. Usaremos un control bindingNavigator para estos propsitos. Entre a Visual C# 2008 Express Edition y cree un nuevo proyecto de tipo Windows Forms Inmediatamente haga click en el men datos y escoja la opcin Agregar nuevo origen de datos, configure una conexin con la base de datos Northwind , agregue las tablas Categories, Products y Suppliers en forma completa, guarde la cadena de conexin en el archivo de configuraciones y mantenga el nombre sugerido para el objeto Dataset. La ventana de origen de datos debe visualizarse de la siguiente manera: En la ventana de origen de datos configure la tabla Products de tal manera que en lugar de visualizarse por vista Detalles o DataGridView se muestre por ListBox Una vez configurado lo anterior, arrastre la tabla Products hacia la superficie del formulario, debe obtener el siguiente resultado: Una vez concluida esta parte, ahora arrastre desde la ventana de Origen de datos, cada campo de la tabla Products sobre la superficie del formulario, (uno por uno). En este caso, (como en muchos otros), no hay necesidad de utilizar algunos de los campos insertados, elimine los textbox (y label) correspondientes a: CategoryID y SupplierID, as como ProductID. Reemplace los textbox eliminados de CategoryId y SupplierID por dos controles ComboBox. (En el caso del campo ProductID no es necesario hacer ningn reemplazo, permanecer eliminado de la interfaz). Vamos a configurar el control ComboBox correspondiente al campo CategoryID de la siguiente manera: Seleccione el ComboBox de la Categora y configrelo como en la imagen: Haga una configuracin similar para el ComboBox de SuppliersID Luego de algunos ajustes de alineamiento, tipo de fuente, etc. La interfaz de usuario debe quedar como sigue: Ejecute y pruebe la aplicacin de tal manera que pueda observar lo sencillo que es desplazarse al interior de la tabla Products Pruebe agregando un nuevo producto y dejando en blanco el campo Discontinued Pruebe editando una fila cualquiera y colocando un valor negativo en el campo UnitPrice Analice los errores obtenidos Si se produjo este error mientras intentaba agregar un nuevo producto es debido a que el campo Discontinued no se encuentra bien configurado desde el diseo. Corrija de la siguiente manera: Este error es desencadenado por un usuario que no escribi un vlido dato para este campo. Para corregirlo necesitamos programar el evento CurrentItemChanged del objeto productsBindingSource de la siguiente manera: Agregue un control ErrorProvider hacia el formulario, el cual est en la seccin Componentes del cuadro de herramientas. Este control no es visible en tiempo de ejecucin. Entramos al evento mencionado en la diapositiva anterior y escribimos el siguiente cdigo: Analice qu inconvenientes puede generar el cdigo anterior e investigue como solucionarlos Controle las actualizaciones de los registros de manera correcta, ya que el cdigo anterior no impedir que se intente guardar los cambios usando el control bindingNavigator. Investigacin: Utilizacin de cast en C#: principales formas de hacer cast. Cast: conversin de tipos de datos. Elaborado por: Jorge Luis Vizcarra Crdenas http://jvizcarra09.blogspot.com jvizcarra@unsa.edu.pe jvizcarra08@gmail.com