elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  SelectedValue para TimeZoneInfo.GetSystemTimeZones()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: SelectedValue para TimeZoneInfo.GetSystemTimeZones()  (Leído 2,069 veces)
.::IT::.

Desconectado Desconectado

Mensajes: 167



Ver Perfil
SelectedValue para TimeZoneInfo.GetSystemTimeZones()
« en: 3 Abril 2015, 08:07 am »

Holas tengo un pequeño detalle para llenar un combobox con  TimeZoneInfo.GetSystemTimeZones() lo que hago es lo siguiente:

Código
  1. private void CargarZonasHorarias()
  2.        {
  3.            ReadOnlyCollection<TimeZoneInfo> zonas = TimeZoneInfo.GetSystemTimeZones();
  4.            cmbZonaHoraria.DataSource = zonas;
  5.            cmbZonaHoraria.DisplayMember = "DisplayName";
  6.            cmbZonaHoraria.ValueMember = "Id";
  7.        }
  8.  

el detalle es que al llamar a cmbZonaHoraria.SelectedValue.ToString() esperaria obtener el Id del TimeZoneInfo seleccionado pero no es asi SelectedValue devuelve el mismo valor que SelectedItem.

bueno la solucion que hice fue:

Código
  1. string idZona = (cmbZonaHoraria.SelectedItem  as TimeZoneInfo).Id;
  2.  

y de esa manera tengo el Id del TimezoneInfo seleccionado:

La pregunta es porque no puedo asignar la propiedad:

Código
  1. cmbZonaHoraria.ValueMember = "Id";


En línea

Simplemente .::IT::.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: SelectedValue para TimeZoneInfo.GetSystemTimeZones()
« Respuesta #1 en: 3 Abril 2015, 10:15 am »

Buenas

El codigo funciona bien, lo que ocurre es que al asignar el DataSource se dispara el evento SelectedIndexChanged, y fíjate que tú estás asignando el DataSource antes que las propiedades DisplayMember y ValueMember, por ende el evento SelectedIndexChanged se dispara por primera vez sin tener en cuenta los valores que asignas a dichas propiedades y por ese motivo no te devuelve el valor esperado (TimeZoneInfo.Id).

Lo que debes hacer es muy simple, asignar el DataSource lo último, modifica el orden de los factores de la siguiente manera:

Código
  1. cmbZonaHoraria.ValueMember = "Id";
  2. cmbZonaHoraria.DisplayMember = "DisplayName";
  3. cmbZonaHoraria.DataSource = TimeZoneInfo.GetSystemTimeZones();

Saludos


« Última modificación: 3 Abril 2015, 11:05 am por Eleкtro » En línea

.::IT::.

Desconectado Desconectado

Mensajes: 167



Ver Perfil
Re: SelectedValue para TimeZoneInfo.GetSystemTimeZones()
« Respuesta #2 en: 4 Abril 2015, 04:24 am »

Buenas

El codigo funciona bien, lo que ocurre es que al asignar el DataSource se dispara el evento SelectedIndexChanged, y fíjate que tú estás asignando el DataSource antes que las propiedades DisplayMember y ValueMember, por ende el evento SelectedIndexChanged se dispara por primera vez sin tener en cuenta los valores que asignas a dichas propiedades y por ese motivo no te devuelve el valor esperado (TimeZoneInfo.Id).

Lo que debes hacer es muy simple, asignar el DataSource lo último, modifica el orden de los factores de la siguiente manera:

Código
  1. cmbZonaHoraria.ValueMember = "Id";
  2. cmbZonaHoraria.DisplayMember = "DisplayName";
  3. cmbZonaHoraria.DataSource = TimeZoneInfo.GetSystemTimeZones();

Saludos

 ;-) listo quedo claro hace ya tiempo que no uso windows forms  :xD
En línea

Simplemente .::IT::.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Necesito ayuda para DRIVER PARA TARJETA ATHEROS AR8132 para Backtrack4
Wireless en Linux
Califor90 0 3,954 Último mensaje 23 Octubre 2010, 19:00 pm
por Califor90
Apple para ricos, Nokia para pobres y Samsung para todos los públicos
Noticias
wolfbcn 0 3,963 Último mensaje 11 Septiembre 2013, 02:33 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines