0

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

1 に答える 1