2015-12-28 127 views
1

在我的应用程序中,我有2 ComboBox。当我在第一个ComboBox中选择一个ComboBoxItem时,第二个生成相对的ComboBoxItem。但是,如果我在第二个ComboBox上创建一个SelectionChanged事件,则会出现此错误。为什么?谢谢!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

+0

能否请您复制过去的selectchanged代码,以便我可以编辑它 –

回答

2

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

在你的榜样,我会使用SelectedIndex属性:

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

你的循环似乎已认准了你的SelectedItem的位置,因此与上述取代你的代码,它会返回项目的位置在ComboBox

+0

感谢您的回复!工作! –

相关问题