2013-10-23 13 views
6

Mam ComboBox powiązany ze źródłem danych, ale nie aktualizuje powiązań, dopóki kontrola nie straci fokusu. Jak mogę zaktualizować powiązania po zmianie wybranych elementów? Na poniższym zrzucie ekranu chciałbym, aby etykieta została natychmiast zaktualizowana, aby odzwierciedlić nowy wybór.Składnik ComboBox nie aktualizujący wiązania DataBind na wybranym zmienionym elemencie (WinForm)

Część kodu: Formularz

public enum MyEnum 
{ 
    First, 
    Second 
} 

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

próbki:

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)); 
} 

Odpowiedz

6

Wykomentuj wersja SelectedItem i modyfikować SelectedValue wiążący tak, aby obejmować UpdateMode:

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

To działało również dla mnie. Dzięki. Ale nie ładuje wartości początkowej MyEnum. Czy muszę to robić ręcznie? – ehmunnehm

+0

@ehmunnehm Nie wiem, jak wygląda twój kod, aby na nie odpowiedzieć. Spróbuj opublikować nowe pytanie z odpowiednim kodem reprodukcyjnym. – LarsTech

0

LarsTech solution jest poprawna. Można również zrobić to w trybie projektowania:

  1. ComboBox Properties (F4) -> DataBindings węzeł -> Zaawansowane

  1. Kliknij na ' SelectedValue "i zmień tryb aktualizacji źródła danych na" OnPropertyChanged " enter image description here
Powiązane problemy