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.


Reply via email to