为什么要写这个东西,因为网上信息太多太乱,备个份吧;
这个环节在很多年前已经攻过,不过很久没用所以忘了,现在做个简单记录;
- 赋值
我一般不做绑定,习惯,或者绑定很好用,或者;
我自己写了个类,实现数据库与WPF的交互,所以直接用DataTable与DataGrid交互就好
me.dg.ItemsSource = tb.defaultView
dg是DataGrid的控件名,一直用这个,不知为什么;
tb是DataTable,使用AptFill填充而来;
- 取值
此处选择模式是默认的,即全行、多选模式;
with me.dg
if .SelectedCells.Count=0 then
'没有选中内容时需处理此错误 ,需保留;
else
Dim sRows = .SelectedItems
Dim its as ItemCollection = .Items
For Each sr In sRows
Dim rx as Integer = its.indexOf(sr)
Debug.Print(Ctype(.Items(rx),DataRowView)(0))
Next
end If
End With
关键点在于:Ctype(.Items(rx),DataRowView)(0),把表中的行转换成DataRowView,然后通行Index或ColumnName来访问读取;【Ctype(.Items(相读取的列号),DataRowView)(想读取的行号),前者要整数;后者可以是数字,也可以是字段名】
xt 20201228