2016-10-24 6 views
0

Ich weiß, dass dies möglicherweise zuvor gefragt und beantwortet wurde. Aber ich konnte sie nicht in meinem Problem verwenden, da ich neu bei wpf bin und Datenbank in C# verbinde.füllen Sie eine Combobox mit einem anderen Combobox ausgewählten Element, in WPF

Das ist das Problem: Ich habe eine MySQL-Datenbank und ihre Tabelle hat 2 Spalten Land und Bezirk. Ich wähle das Land aus einer Combobox, die in Ordnung ist. und ich möchte den Bezirk nach dem Land auswählen. Ich verwende 2 Comboboxen für die Auswahl von Land und Bezirk.

Noch kann ich Bezirk nicht laden, als ich ein Land auswählte. Ich denke, dass meine sql Schnur und wpf Ereignisbehandlung das Problem werfen könnte.

  string new_student_sql = "SELECT Id,Name FROM world.city WHERE 
     CountryCode = '"; 

     string connectionStr = new_student_sql + comboBoxCountry.Text + 
     "' AND District= '" + comboBoxDistrict.Text + "'"; 


     MySqlCommand newStudent = new MySqlCommand(connectionStr, conn); 
     newStudent.CommandText = connectionStr; 
     conn.Open(); 
     DataTable dt = new DataTable(); 
     dt.Load(newStudent.ExecuteReader()); 
     conn.Close(); 
     dataGrid.DataContext = dt; 
     MessageBox.Show(connectionStr); 

Ich bekomme Combobox für Country-Wert als ComboBoxCountry.Text. aber wenn ich diesen Wert in ComboBoxDistrict Auswahl geändert Methode wie oben aufgeführt gebe ich eine leere Combobox in Bezirken.

Wie soll ich beide nach Auswahl der ersten bevölkern. Alle Vorschläge und Code-Beispiele wären wirklich dankbar. Vielen Dank im Voraus.!

+0

Können Sie überprüfen, ob Ihre Abfrage nach Distrikten tatsächlich Ergebnisse liefert? Wenn es Ergebnisse zurückgibt, überprüfen Sie die Datenbindung (Richtung) Ihrer Bezirke Combobox. So aktualisieren Sie von der Quelle oder in beide Richtungen. – ISAF

+0

@ISAF nein es gibt nichts zurück. – Mlarnt90

+0

@ ISAF Sache ist diese ComboBoxCountry.text String nicht durch diese Methode identifizieren – Mlarnt90

Antwort

0

Nun, ich habe es herausgefunden. eigentlich ist es ein dummer Fehler. Ich habe vergessen, ComboBoxDistrict-Methode in der CountrySelectionchange Event-Methode aufzurufen. Wegen dieses Fehlers wird der Distrikt nicht aktualisiert. statt comboBoxDistrict.Text auch comboBoxDistrict.SelectedValue verwendet den gewählten Wert zu erhalten und Variable für die Verwendung anstelle von

   string connectionStr = new_student_sql + comboBoxCountry.Text + 
       "' AND District= '" + comboBoxDistrict.Text + "'"; 

Verwendung ein varible tun,

   String country= comboBoxCountry.SelectedValue.ToString(); 

, so dass es einfacher, mit zu arbeiten. Danke an alle, die versucht haben, dies zu lösen und mich an MVVM Muster gerichtet und ich würde definitiv einen Schuss geben.

Verwandte Themen