我无法让我DataGrid
的数据填充。我是 XAML 的新手。我正在使用一个OracleDataReader
对象,并希望将其添加到DataGrid
. 首先是 XAML:
<DataGrid Name="grdResults" FontSize="25" AutoGenerateColumns="False" CanUserResizeRows="False" DockPanel.Dock="Top" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=extName}" Header="Name" Width="*" />
<DataGridTextColumn Binding="{Binding Path=location_note}" Header="Location" Width="*" />
<DataGridTextColumn Binding="{Binding Path=crate_no}" Header="Crate" Width="*"/>
</DataGrid.Columns>
</DataGrid>
这里是幕后。似乎它应该工作,但事实并非如此。这些字段的名称与它们在 XAML 中绑定的名称相同。RS 是一个填充的OracleDataReader
.
Dim dt As New DataTable
dt.Load(rs)
grdResults.DataContext = dt.DefaultView
谁能看到我做错了什么?
编辑 :
我能够让它工作。可能不是最好的方法,但对我有用。我从 XAML 中取出 datagrid.columns 和 childs 并将其放在 dt.Load(rs) 和设置 datacontext 之间的幕后
grdResults.Columns.Add(New DataGridTextColumn() With { _
.Header = "Name", _
.Binding = New Binding(String.Format("[{0}]", "extName"))})
grdResults.Columns.Add(New DataGridTextColumn() With { _
.Header = "Location", _
.Binding = New Binding(String.Format("[{0}]", "location_note"))})
grdResults.Columns.Add(New DataGridTextColumn() With { _
.Header = "Crate", _
.Binding = New Binding(String.Format("[{0}]", "crate_no"))})