我無法讓我的DataGrid
填充數據。我是XAML的新手。我正在使用OracleDataReader
對象,並希望將其添加到DataGrid
。首先這裏是XAML:當我添加數據到XAML中的datagrid不更新
<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和孩子的,並把這個在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"))})
我完全不鼓勵在WPF客戶端使用'System.Data'類。創建一個適當的數據模型來保存數據和適當的ViewModel來定義應用程序邏輯。 – 2013-04-26 15:08:22
但是,如果我有,它可以顯示在網格中? – Loogawa 2013-04-26 15:10:44
當然花花公子。 WPF比winforms更有能力。我不明白你的問題。 – 2013-04-26 15:18:02