2017-04-20 7 views
0

前の項目を示しています。 2番目のComboBoxは、最初のComboBoxのアイテムを選択/変更すると有効になります。しかし、Second ComboBoxは常に前のアイテムを表示します。例えばComboBoxのSelectionChangedイベントは、私は2つのコンボボックスを持っている

:私はコンボボックス1とComboBox2内の項目を変更 は私に任意の項目を表示しません。 私は再びコンボボックス1内の項目を変更します。今ComboBox2は私に最初の変更によって示されるはずのアイテムを表示します。ここで

は私のコードです:

private void categoryComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    subCategoryComboBox.Items.Clear(); 
    subCategoryComboBox.IsEnabled = true; 

    string SelectedCategoryID = ConvertBackCategory(categoryComboBox.Text); 
    connection = new MySqlConnection(conf.connection_string); 
    if (this.OpenConnection() == true) 
    { 
     try 
     { 
      using (MySqlCommand cmd = new MySqlCommand()) 
      { 
       cmd.Connection = connection; 
       cmd.CommandText = "SELECT name FROM auftrags_typ_childcategory WHERE category = @CategoryID"; 
       cmd.Parameters.AddWithValue("@CategoryID", SelectedCategoryID); 
       using (MySqlDataReader reader = cmd.ExecuteReader()) 
       { 
        while (reader.Read()) 
        { 
         subCategoryComboBox.Items.Add(reader["name"].ToString()); 
        } 
       } 
      } 

     } 
     catch (MySqlException ex) 
     { 
      MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); 
     } 
    } 
} 

私はこの問題を解決するにはどうすればよいですか? /なぜ私は現在のアイテムではないのですか?

答えて

2

The Text property of the WPF ComboBoxSelectionChangedイベントが発生した後まで更新されません。なぜ、私に尋ねないでください。しかし、そうではありません。彼らは唯一の編集可能なテキストとコンボボックスに使用するTextプロパティを意図しているように見えます。SelectionChangedが発生する前に

ComboBoxの他のすべてのの関連するプロパティがが更新されます。

SelectedItemSelectedValue、およびSelectedIndexはすべて正しいとあなたのSelectionChangedハンドラの現在となります。 I answered this question yesterday;あなたは、あまりにも多くの問題なしにあなたのニーズにその答えを適応させることができるはずですが、あなたがつまみを打つかどうかを教えてください。

+0

ああ、ありがとうございました。私はGoogleでその質問を見なかったので、このタイプの失敗はここには存在しません。 –

関連する問題