2009-03-10 25 views
0

Bir ComboBox öğesini bir nesneden veriye bağlamaya çalışıyorum. Nesne, izin verilen durumlar ve geçerli değerini temsil eden bir dize sahip bir liste tutar. Sorun şu ki, form yüklendiğinde, combobox değerini geçerli değerine doğru olarak ayarlıyor ancak değeri başka herhangi bir şeye değiştiremiyorum. Açılır menüyü tıklatır ve yeni bir değer seçtiğimde açılır menüyü kapatır, ancak orijinal değeri korur.WPF ComboBox Bağlama Değişkeni

Birleşik kutuların her biri DataGrid içinde bir sıradadır ve ComboBox, DataGrid için RowDetailsTemplate içinde bulunur.

XAML:

<ComboBox 
    x:Name="cmbStatus" 
    ItemsSource="{Binding Path=AllowedStateValues}" 
    SelectedItem="{Binding Path=State}"  
    Height="20" 
    Width="100" /> 

cevap

0

Devlet Bildirgesi: Bir etkinliği yok

private string _state; 
    public string State { 
     get { return _state; } 
     set 
     { 
      if (AllowedStateValues != null && AllowedStateValues.Contains(value)) 
      { 
       _state = value; 

      } 
     } 

    } 

o değiştiğinde kaldırdı ama aynı zamanda combobox değiştirdiğinizde ayarlayıcı aramayacağım görünüyor ediliyor

1

TwoWayiçin Mod bağlama deneyin ayarı. Bu işe yaramazsa, tüm ayrıntıları almak için PresentationTraceSources.TraceLevel özelliğini Yüksek kullanın.

+0

Mode = TwoWay'i denedim ve değişiklik yapmayın. PresentationTraceSources.TraceLevel = "High" öğesinin ne yapması gerektiğinden emin değilim. – Stephan

+0

Hiçbir şey yapmaz, ancak bağlama kümesine ilişkin tüm önemli bilgileri izler. Sorunun kaynağına dair bir ipucu olabilir. – orcun

0

Sadece aynı problemi yaşadım. Sorunum, Eşitlerim'de bulunan öğelerin geçersiz kılınmasıydı. Eşit olmayan birden fazla nesnenin eşit olarak karşılaştırılmadığından emin olun ve kontrol edin.