С помощью @competent_tech я смог получить, чтобы мои comboboxitems были выбраны с помощью нажатия кнопки и проанализированы через некоторый код VB, чтобы получить отображаемый документ.Как я могу устранить эту ошибку кастинга?
Казалось, все работает отлично, пока я не решил связать выпадающий в файл XML, используя следующий код:
<ComboBox Name="ComboBox1" ItemsSource="{Binding Source={StaticResource vehicleID}, XPath=//manualtype/ipck/vin}" IsReadOnly="True"></ComboBox>
Это код, я использую на мероприятии button.click:
Try
Dim sFileName As String
If ComboBox1.SelectedValue IsNot Nothing Then
sFileName = DirectCast(ComboBox1.SelectedValue, ComboBoxItem).Content.ToString()
Dim theDocument As New System.Windows.Xps.Packaging.XpsDocument(System.IO.Path.Combine("C:\EMR", sFileName & "ipck.xps"), System.IO.FileAccess.Read)
DocumentViewer1.Document = theDocument.GetFixedDocumentSequence()
End If
Catch ex As Exception
MessageBox.Show("ERROR: " & ex.Message)
End Try
Комбобокс работает нормально - отображает значения из XML-файла, однако теперь я получаю сообщение об ошибке, когда я выбираю элемент и нажимаю кнопку. В сообщении об ошибке указано: «НЕОБХОДИМО ВОЗВРАТИТЬ ОБЪЕКТ ТИПА» SYSTEM.STRING 'TO TYPE' SYSTEM.WINDOWS.CONTROLS.COMBOBOXITEM '.
Пожалуйста, помогите мне решить эту проблему, так как я хотел бы иметь возможность обновлять список ComboBoxItem через файл XML, вместо того, чтобы перекодировать с программным обеспечением каждый раз, когда я хочу, чтобы обновить список. Спасибо.
Не правда ли, что SelectedValue уже является строкой? И что SelectedItem является ComboBoxItem? –
Не пытаться звучать снисходительно, но потратить некоторое время, чтобы научиться использовать отладчик, действительно окупится в долгосрочной перспективе. Простое установление точек останова и использование окна просмотра помогут вам безболезненно. Так много программистов, с которыми я сталкиваюсь, ужасно отлаживаются, и это одно из самых важных навыков, которые вы можете развивать. – codeConcussion