#wpf #vb.net #wpfdatagrid
#wpf #vb.net #wpfdatagrid
Вопрос:
Привет, я конвертирую старый vb.net запрограммируйте WPF, и у меня возникли проблемы. Я импортировал некоторые данные в datatable и сбросил их в datagrid. Теперь мне нужно перейти строка за строкой и извлечь значения ячеек и использовать их для обновления соответствующей записи базы данных.
Это работало в моей старой программе с использованием:
For i = 0 To DataGridView1.Rows.Count - 1
cellvalue = Me.datagrid.Items(i).Cells(8).Value).ToString
(insert to database) etc
next
Я искал вокруг, и, по-видимому, это не так просто в WPF. Но все рабочие примеры, которые я могу найти, написаны на C #, с которым я не настолько знаком и, похоже, не могу преобразовать для работы. Так что, если кто-нибудь может предоставить мне какой-нибудь код (в vb), это было бы очень ценно.
Комментарии:
1. Вы знаете этот конвертер ?
2. @HB: Он конвертирует WinForms в WPF.
Ответ №1:
Если у вас уже есть таблица данных, содержащая ваши данные, с ней довольно легко работать:
Dim dt As New System.Data.DataTable
'...Load your data into DataTable
For Each rw As System.Data.DataRow In dt.Rows
cellValue = rw(8).ToString
'...insert to database
Next
Комментарии:
1. да, но, возможно, я изменил данные в datagrid перед их импортом:(
2. Если вы привязали свой DataTable к ItemsSource вашей DataGrid, то при обновлении DataGrid DataTable также обновляется. В WPF обычно лучше работать с базовыми объектами данных, а не напрямую с элементами управления в пользовательском интерфейсе.
3. о, я не был уверен, что это что-то меняет — в любом случае, я нашел другой способ 2. спасибо за помощь
4. ах! это не позволит мне ответить самому — слава всем вам!
5. На самом деле оказывается, что у меня был ответ в моем старом коде для «clickevent» в Windows forms datagrid:———————————————————————————————————————————————————————- Для каждого элемента В виде DataRowView В datagrid. Элементы ——————————————————————————- значение ячейки = элемент. Элемент («имя_столбца») ———————————————————————————————( вставить в базу данных) и т. Д ————————————————— далее
Ответ №2:
For Each item As DataRowView In datagrid.Items
cellvalue = item.Item("ColumnName")
(insert to database)
next