У меня есть событие для ComboBox, "SelectionChange".
Вот что я пытаюсь сделать:
- У меня есть два ComboBox
- Второй ComboBox будет отображать элементы в зависимости от выбранного элемента в первом поле
- ComboBox2 должен реагировать, как только элемент на ComboBox1 выбран
Моя проблема в том, что я пытаюсь получить SelectedIndex.
Когда я использую ComboBox1.Text после подтверждения SelectedIndex, он возвращает ноль, поэтому ComboBox2 не реагирует.
Я попытался поместить кнопку, чтобы вызвать событие, и оно сработало. Кажется, что SelectedIndex не изменится, пока вы не отпустите фокус.
Вот фрагмент кода:
if (cb_subj.SelectedIndex == ctr)
{
cb_section.Items.Clear();
if (connectToDB.openConnection() == true)
{
MySqlDataAdapter comboBoxItems_seclist = new MySqlDataAdapter();
MySqlCommand query = new MySqlCommand(@"SELECT section_code FROM sections
WHERE subject = @subj", connectToDB.connection);
query.Parameters.AddWithValue("@subj", cb_subj.Text);
comboBoxItems_seclist.SelectCommand = query;
System.Data.DataTable classlist = new System.Data.DataTable();
comboBoxItems_seclist.Fill(classlist);
foreach (System.Data.DataRow row in classlist.Rows)
{
string rows = string.Format("{0}", row.ItemArray[0]);
cb_section.Items.Add(rows);
}
}
break;
}
Вот XAML двух CB:
<ComboBox Height="23" HorizontalAlignment="Left" Margin="166,12,0,0" Name="cbox_year" VerticalAlignment="Top" Width="120" SelectionChanged="cbox_year_SelectionChanged">
<ComboBoxItem Content="1st Year / 1st Sem" />
<ComboBoxItem Content="1st Year / 2nd Sem" />
<ComboBoxItem Content="2nd Year / 1st Sem" />
<ComboBoxItem Content="2nd Year / 2nd Sem" />
<ComboBoxItem Content="3rd Year / 1st Sem" />
<ComboBoxItem Content="3rd Year / 2nd Sem" />
<ComboBoxItem Content="4th Year / 1st Sem" />
<ComboBoxItem Content="4th Year / 2nd Sem" />
</ComboBox>
<ComboBox Height="23" HorizontalAlignment="Left" Margin="166,41,0,0" Name="cb_subj" VerticalAlignment="Top" Width="120" SelectionChanged="cb_subj_SelectionChanged" />