データを入力できません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"))})