2009-06-09 10 views
5

tengo el siguiente escenario:Silverlight ComboBox y SelectedItem

1 lista que contiene los meses del año:

public List<String> Months 
{ 
    get 
    { 
     return m_Months; 
    } 
} 


m_Months = new List<String>(); 

for (int i = 1; i <= 12; i++) 
{ 
    DateTime date = new DateTime(1900, i, 1); 
    m_Months.Add(date.ToString("MMM")); 
} 

1 ComboBox cuya ItemsSource está unido al Meses-lista y cuya SelectedIndex está obligado Mes de la propiedad, que es una cadena:

public string Month 
     { 
      get 
      { 
       return m_Month; 
      } 
      set 
      { 
       if (value != m_Month) 
       { 
        m_Month = value; 
        NotifyPropertyChanged("Month"); 
       } 
      } 
     } 

<ComboBox SelectedItem="{Binding Month, Mode=TwoWay}" ItemsSource="{Binding Months}" /> 

Cuando me puse el Año del código subyacente, es decir, Mes = "mayo", esta se propaga correctamente a la ComboBox y el Gett Se accede a er para Month, pero el ComboBox no muestra 'May' como elemento seleccionado.

Me gustaría saber: ¿esto es un error en Silverlight 3? Funciona bien cuando uso RadComboBox de Telerik.

Saludos, Frances

Respuesta

10

Gracias por su respuesta. Ya probé tu sugerencia y obtuve los mismos resultados. Sin embargo, acabo de tener un momento de Homer Simpson (Dôh!) Y descubrí que configuré el mes antes de que el ComboBox establezca su ItemsSource.

Extraño, sin embargo, que el RadComboBox hace todo correctamente. Tal vez recupere el SelectedItem nuevamente cuando el ItemsSource cambie.

EDIT:

bien, acabo literalmente caí de la silla con asombro. Aparentemente, SL3 aún tiene algunos errores que deben corregirse. Un regalo para los ojos en el siguiente ...

Esto no funciona:

<ComboBox SelectedItem="{Binding Month, Mode=TwoWay}" ItemsSource="{Binding Months}" /> 

Y esto:

<ComboBox ItemsSource="{Binding Months}" SelectedItem="{Binding Month, Mode=TwoWay}" /> 

Ver la pequeña diferencia? Siempre que establezca ItemsSource antes de SelectedItem en XAML, todo está bien en el mundo. ¡Wowee, nunca supe que XAML fue analizado linealmente!

+0

Esperemos que lo hayan arreglado en Silverlight 4, pero gracias por publicar esta respuesta. – Aligned

+0

Wow, perdimos mucho tiempo tratando de resolver esto. Gracias por publicar la respuesta! –

+1

@Kevin Esto no está solucionado en SL4. – Rob

0

¿Cómo se configura la propiedad Month? No estoy seguro de cómo el ComboBox determina si dos elementos son iguales o no, pero pude ver que no funcionaría correctamente si pasa "May" en lugar de Months[4]. Como prueba, puede intentar pasar una de las cadenas de su lista para ver si eso soluciona el problema o no.

Cuestiones relacionadas