El problema es que el valor 25 no se carga... si no que es el SelectedValue.
FindString sirve para recuperar valores pero haciendo busqueda sobre el texto asociado a la carga del combo con el DisplayMember.
Este caso lo probe, pero no funciona a menos que arme una cadena con Codigo - Descripcion y no apropiado para este caso...
Gracias por la ayuda. Saludos. endm. Marcelo Abosch escribió:
El combo tiene comportamientos extraños... probá con int idx = this.cbo.FindString("25"); this.cbo.SelectedIndex= idx; ----- Original Message ----- *From:* emiliano della maggiora <mailto:[EMAIL PROTECTED]> *To:* [email protected] <mailto:[email protected]> *Sent:* Thursday, May 24, 2007 6:38 PM *Subject:* [puntonet] Cargar combo con un Diccionario Hola gente... hace mucho que no escribo al grupo (estuve medio perdido) Saludos para todos... Tengo el siguiente problema: Mi modelo de objetos está basado en diccionario de System.Collections.Generic. Lo que hago es recuperar por ejemplo un set de registros y los cargos en clases que equivalen esos registros (Tengo una instancia de esa clase por cada registro que recupero y cargo todos esas instancias en un diccionario con clave y valor de acuerdo a la clave de la tabla. Me explico? Hasta ahi... todo barbaro. Cuando quiero cargar un combo utilizando DataSource, DisplayMember y ValueMember paso todo ese diccionario a una clase mia DS que implementa IList e IEnumerator. Cargo el combo lo mas bien, pero el problema que tengo es cuando quiero asignar el SelectedValue en el caso de querer cargar en un form un registro previamente cargado... A continuación paso el codigo para que se entienda mejor. // Creamos instancia del conversor DTOs a DataSource dgm.Provider.DataSource ds = new dgm.Provider.DataSource(); // Obtenemos el diccionario con todos los DTOs de Proyectos Dictionary<int, Sisat.DTO.Proyecto> dtos = Sisat.Business.Proyecto.Listar(); // Pasamos cada DTO a nuestro Conversor DS. foreach (Sisat.DTO.Proyecto dto in dtos.Values) ds.Add(dto); // Cargamos el Combo [Esto funciona bárbaro] // Aclaro que cada elemento es una clase del tipo DTO.Proyecto // y tiene las propiedades Codigo y Nombre // El tipo de dato de las propiedades es dgm.Property y esta tiene una propiedad Value // que está asignada como propiedad por defecto de la clase.cbo.BeginUpdate(); cbo.ValueMember = "Codigo";cbo.DisplayMember = "Nombre"; cbo.DataSource = ds; cbo.EndUpdate();// Antes de cambiar el valor de la propiedad consulto el valor y tiene 18 [Lo cual es correcto] cbo.SelectedValue = 25;// Luego de asignar el valor 25, consulto el valor de SelectedValue y este es null. Si por favor, alguien me puede tirar una linea... Muchas gracias de ante mano. Saludos para todos. endm.
