2016-10-24 9 views
0

これは前に尋ねられ、回答されている可能性があります。しかし、私はwpfに慣れていて、C#でデータベースを接続しているので、私の問題では使用できませんでした。WPFで別のコンボボックスの選択項目を使用してコンボボックスを作成する

これは問題です。私はmysqlデータベースを持っており、そのテーブルには2つのカラムがあります。私はコンボボックスから国を選択していますが、これは問題ありません。私は国によって地区を選びたいと思っています。私は国と地区を選択するために2つのコンボボックスを使用しています。

私は国を選択したときにまだ私は地区を読み込むことができません。私のSQL文字列とwpfイベント処理が問題を投げるかもしれないと思います。

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

私はcomboBoxCountry.Textとして国の値のコンボボックスを取得しています。しかし、私がcomboBoxDistrictでこの値を指定すると、上記のリストのようにメソッドが変更されました。私は、コンボボックスが空白になっています。

どのように私は最初のものの選択に従ってそれらの両方を設定するはずです。提案やコードサンプルは本当に感謝しています。 ありがとうございます。

+0

地区の質問が実際に結果を返すかどうか確認できますか? 結果が返ってくる場合は、地区コンボボックスのデータバインディング(方向)を確認してください。ソースからの更新、または双方向からの更新。 – ISAF

+0

@ISAFいいえ、何も返されません。 – Mlarnt90

+0

@ISAFはこれですcomboBoxCountry.text文字列はこのメソッドで識別されません – Mlarnt90

答えて

0

よくわかった。実際には愚かな間違いです。私はcountryselectionchangeイベントメソッドでcomboBoxDistrictメソッドを呼び出すことを忘れていました。その間違いのために、地区は更新されません。また、代わりにcomboBoxDistrict.Textの

   String country= comboBoxCountry.SelectedValue.ToString(); 

ので、その簡単にで動作するようにすることを、選択された値を取得し、そのために変数を使用する代わりに

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

使用varibleを行うためにcomboBoxDistrict.SelectedValueを使用しています。 これを解決しようとしてくれたMVVMのパターンに私を指揮してくれた皆さん、ありがとうございました。

関連する問題