Vb.net 如何解决此铸造错误?

Vb.net 如何解决此铸造错误?,vb.net,Vb.net,在@competable_tech的帮助下,我可以通过点击按钮选择comboboxitems,并通过一些VB代码进行解析,以显示文档 一切似乎都很正常,直到我决定使用以下代码将combobox绑定到XML文件: <ComboBox Name="ComboBox1" ItemsSource="{Binding Source={StaticResource vehicleID}, XPath=//manualtype/ipck/vin}" IsReadOnly="True"></C

在@competable_tech的帮助下,我可以通过点击按钮选择comboboxitems,并通过一些VB代码进行解析,以显示文档

一切似乎都很正常,直到我决定使用以下代码将combobox绑定到XML文件:

<ComboBox Name="ComboBox1" ItemsSource="{Binding Source={StaticResource vehicleID}, XPath=//manualtype/ipck/vin}" IsReadOnly="True"></ComboBox>
组合框工作正常-显示XML文件中的值,但是,现在每当我选择一个项目并单击按钮时,就会收到一条错误消息。错误消息声明:“无法将类型为“SYSTEM.STRING”的对象强制转换为类型为“SYSTEM.WINDOWS.CONTROLS.COMBOBOXITEM”


请帮助我解决此问题,因为我希望能够通过XML文件更新comboboxitem列表,而不必每次更新列表时都重新编码软件。谢谢。

您正在尝试将ComboBox1.SelectedValue转换为comboboxitem对象的字符串

我想你可以用:

sFileName = ComboBox1.SelectedValue

或者您的combobox不是一个文件名列表?

SelectedValue不是一个字符串吗?SelectedItem不是一个ComboBoxItem吗?不要试图让人觉得有点屈尊俯就,但花一些时间学习如何使用调试器从长远来看会有回报。只需设置断点并使用“监视”窗口,就可以帮助您非常感谢。我遇到的这么多程序员在调试方面非常糟糕,这是你可以培养的最重要的技能之一。谢谢,这就解决了问题。哇,我终于有人知道了这些代码。那么基本上,在什么情况下会调用DirectCast方法?当你需要更改类型时,你想使用casting。那么,假设你有一个字符串“1”和一个int 4,您需要添加它们。您需要将字符串“1”强制转换为int 1,以便将其添加到4。这在您的案例中并不适用。
sFileName = ComboBox1.SelectedValue