我刚刚在这个网站上发现了一个帖子,回答者试图回答一个类似的问题。帖子的链接是:WPF ComboBox with IsEditable="True" - 我怎样才能表明没有找到匹配项?
所以,我试着按照答案没有。1 user1234567 的主题 4。我最终遇到了错误。
1) 列表不包含 ElementAt 的定义。在下面的行:
if(textBox.Text != "" && items.ElementAt(i).StartsWith(textBox.Text))
我尝试使用以下行来解决该错误:
if(textBox.Text != "" && items[i].StartsWith(textBox.Text))
因此,所有编译时错误都消失了。
2)我在下面提到的行上收到运行时错误:
items.Add(((ComboBoxItem)cbEffectOn.Items.GetItemAt(i)).Content.ToString());
错误说:Cannot convert string to ComboBoxItem.
如果你们中的任何人有更好的解决方案或可以解决上述错误,请提出建议。
更新:
这是组合框的 XAML:
<ComboBox x:Name="cbEffectOn" IsEditable="True"
ItemsSource="{Binding Path=EffectName,
Mode=TwoWay, UpdateSourceTrigger=Default}"
Grid.Column="4" Grid.Row="5" KeyUp="myComboBox_KeyUp"/>
更新 2:
这是第二个问题的解决方案:
string
我第一次尝试尝试施法ComboBoxItem
。但是现在我知道 s 中的所有项目ComboBox
都是string
s 所以我尝试了下面的代码并且它有效:
items.Add(cbEffectOn.Items.GetItemAt(i).ToString());