Получить значение ячейки из WPF Datagrid (в vb)

#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