2009-06-09 21 views
5

Aşağıdaki senaryo vardır: Yılın ay içerenSilverlight ComboBox ve SelectedItem

1 listesi: kimin ItemsSource Ay-listeye bağlı olduğu

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 ve kimin Selectedındex sınırdır Ben codebehind, yani Ay = "Mayıs" ayarlandığında yıl

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}" /> 

, bu düzgün ComboBox öğesine yayılır ve GETT: bir dize mülkiyet Ay, hiç Ay için er erişilir, ancak ComboBox seçili öğe olarak 'May' göstermez.

Bilmek İstiyorum: Bu Silverlight 3'teki bir hata mı? Telerik'ten RadComboBox'ı kullandığımda iyi çalışıyor.

Alkış, Frances

cevap

10

Cevabınız için teşekkür ederiz. Önerinizi denediniz ve aynı sonuçları aldınız. Ancak, bir Homer Simpson anı yaşadım (Dôh!) Ve ComboBox'un ItemsSource'u belirlemesinden önce Ay'ı ayarladığımı öğrendim.

Yine de, RadComboBox'ın her şeyi doğru yaptığını garip. Belki ItemsSource değiştiğinde SelectedItem yeniden alır.

DÜZENLEME:

Tamam, sadece gerçekten hayretle benim sandalye düştü sadece. Görünüşe göre, SL3'ün hala sabitlenmesi gereken bazı hataları var.

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

Ve bu mu:

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

minik farkı görün

Bu işe yaramazsa ... Aşağıdakilerden ile gözlerinize ziyafet çekin?'dan önce ItemsSource 'u XAML'deki SelectedItem'i ayarladığım sürece, hepsi de dünyada iyi durumda. Wowee, XAML'in lineer olarak ayrıştırıldığını hiç bilmiyordum!

+0

Umarım Silverlight 4'te sabitlenmiştir, ancak bu yanıtı gönderdiğiniz için teşekkür ederiz. – Aligned

+0

Vay, bunu anlamaya çalışırken çok zaman harcadık. Cevabınızı gönderdiğiniz için teşekkürler! –

+1

@Kevin Bu SL4'te sabit değil. – Rob

0

nasıl Month özelliğini ayarlıyorsunuz? ComboBox'un iki öğenin aynı olup olmadığını nasıl belirleyeceğinden emin değilim, ancak Months[4] yerine "Mayıs" değerini geçerseniz düzgün çalışmayacağını görebiliyordum. Bir test olarak, sorunun giderilip giderilmediğini görmek için listeden dizelerden birini geçmeyi deneyebilirsiniz.