ComboBox上的SelectionChanged事件动态创建

时间:2015-12-28 11:08:08

标签: c# events combobox selectionchanged

在我的申请中,我有2 ComboBox。当我在第一个ComboBox中选择ComboBoxItem时,第二个生成相对的ComboBoxItem。但是如果我在第二个ComboBox上创建一个SelectionChanged事件,我会收到此错误。为什么?谢谢!

private void scarpeBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox combo = (ComboBox)sender;
    ComboBoxItem item = (ComboBoxItem)combo.SelectedItem;
    for (int i = 0; i < 16; i++)
        if (combo.Items[i] == item) id = i;
}

InvalidCastException

1 个答案:

答案 0 :(得分:2)

您的SelectedItem有价值String,它不像您认为的那样是一种控制。您正在尝试将String转换为ComboboxItem,这会引发异常。

在您的示例中,我将使用SelectedIndex属性:

private void scarpeBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox combo = (ComboBox)sender;
    id = combo.SelectedIndex;
}

您的循环似乎在寻找SelectedItem的位置,因此请用上面的代码替换代码,它将返回ComboBox中项目的位置。