2013-10-23 33 views
6

Veri kaynağına bağlı bir ComboBox'ım var ancak denetim odağı kaybedene kadar bağlamaları güncelleştirmeyecek. Seçilen öğeler değiştiğinde bağlamaları nasıl güncelleyebilirim? Aşağıdaki ekran görüntüsünde, yeni seçimi yansıtacak şekilde etiketin hemen güncellenmesini istiyorum. ComboBox seçili öğe üzerindeki DataBindings değiştirilmedi (WinForms)

Bazı Kodu:

public enum MyEnum 
{ 
    First, 
    Second 
} 

public class MyData 
{ 
    public String Name { get; set; } 
    public MyEnum MyEnum { get; set; } 
} 

Örnek Form:

public SampleForm() 
{ 
    InitializeComponent(); 
    MyData data = new MyData() { Name = "Single Item" }; 
    this.bindingSource1.DataSource = data; 
    this.comboBox1.DataSource = Enum.GetValues (typeof (MyEnum)); 
    this.label2.DataBindings.Add ("Text", this.bindingSource1, "MyEnum", true, DataSourceUpdateMode.OnPropertyChanged); 
    this.comboBox1.DataBindings.Add (new System.Windows.Forms.Binding ("SelectedItem", this.bindingSource1, "MyEnum", true)); 
    this.comboBox1.DataBindings.Add (new System.Windows.Forms.Binding ("SelectedValue", this.bindingSource1, "MyEnum", true)); 
} 

cevap

6

Yorum dışarı SelectedItem sürümü ve SelectedValue UpdateMode dahil etmek için bu gibi bağlayıcı değiştirin:

this.comboBox1.DataBindings.Add(new Binding(
             "SelectedValue", 
             this.bindingSource1, 
             "MyEnum", 
             true, 
             DataSourceUpdateMode.OnPropertyChanged)); 
+0

'OnPropertyChanged' ve değişim Veri Kaynağı Güncelleme Modu için'. Teşekkürler. Ama MyEnum'un inital değerini yüklemiyor. Bunu manuel olarak yapmak zorunda mıyım? – ehmunnehm

+0

@ehmunnehm Kodunuzun buna nasıl cevap verdiğini bilmiyorum. Doğru çoğaltma koduyla yeni bir soru göndermeyi deneyin. – LarsTech

0

LarsTech solution doğrudur. Ayrıca tasarım modunda yapabilirsiniz:

  1. ComboBox Özellikleri (F4) -> DataBindings düğümü -> Gelişmiş

  1. tıklayın başlatmak SelectedValue Bu benim için çok çalıştı enter image description here
İlgili konular