Tengo un cuadro combinado en una aplicación de WinForms en la que se puede seleccionar un elemento, pero no es obligatorio. Por lo tanto, necesito un primer elemento 'Vacío' para indicar que no se ha establecido ningún valor.Cómo insertar el campo 'Vacío' en ComboBox vinculado a DataTable
El cuadro combinado está enlazado a un ser DataTable de regresar de un procedimiento almacenado (Ofrezco disculpas por la notación húngara en mis controles de interfaz de usuario: p):
DataTable hierarchies = _database.GetAvailableHierarchies(cmbDataDefinition.SelectedValue.ToString()).Copy();//Calls SP
cmbHierarchies.DataSource = hierarchies;
cmbHierarchies.ValueMember = "guid";
cmbHierarchies.DisplayMember = "ObjectLogicalName";
¿Cómo puedo insertar un elemento, vacío?
Tengo acceso para cambiar el SP, pero realmente preferiría no 'contaminarlo' con la lógica de UI.
Actualización: Era la DataTable.NewRow() que había borrado, gracias. Les he modificado a todos (las 3 respuestas hasta ahora de todos modos). Estoy tratando de obtener el patrón Iterator funcionando antes de decidir una 'respuesta'
Actualización: Creo que esta edición me pone en la tierra del Wiki de la comunidad, he decidido no especificar una sola respuesta, ya que todos tienen mérito en el contexto de sus dominios. Gracias por su aporte colectivo.
Un poco tarde en el juego, pero la primera opción funcionó bien para mí. Lo único que hice diferente fue usar InsertAt, de modo que mi opción vacía ("Ninguno") aparece como el primer elemento en el cuadro combinado: hierarchies.Rows.InsertAt (emptyRow, 0); –
Olvidé mencionar ... No usé DataView y lo até directamente a una tabla devuelta por un método, por lo que ya estaba ordenada correctamente. InsertAt es útil en este caso. –