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.



Responder a