我的XAML如下:問題結合數據表到WPF數據網格
<DataGrid x:Name="WaterfallDataGrid" HorizontalAlignment="Left" Height="540" Margin="10,410,0,0" VerticalAlignment="Top" Width="1650" CanUserSortColumns="False" ColumnWidth="60">
<DataGrid.Columns>
<DataGridTextColumn Header="Load" Binding="{Binding Load}"></DataGridTextColumn>
<DataGridTextColumn Header="PF" Binding="{Binding PF}"></DataGridTextColumn>
<DataGridTextColumn Header="Spare" Binding="{Binding Spare}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
我VB.net代碼如下:
Dim dt3 As New DataTable("Waterfall")
dt3.Columns.Add("Load")
dt3.Columns.Add("PF")
dt3.Columns.Add("Spare")
dt3.rows.add(New Objecet() {"full load", "0.8", "20%"})
WaterfallDataGrid.itemSource = dt3.defaultview
雖然數據表不會獲取顯示在數據網格,它創建除了我在XAML中創建的原始3列之外,還有3個新列(Load,PF和Spar)。
如何將VB.net代碼綁定到XAML數據網格?
這裏是繼埃德的代碼
截圖下面是我修改以下馬克的評論的代碼。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Datagrid_Binding"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid x:Name="WaterfallDataGrid" HorizontalAlignment="Left" Height="170" Margin="85,65,0,0" VerticalAlignment="Top" Width="340" AutoGenerateColumns="False"/>
<Button x:Name="button" Content="Button" HorizontalAlignment="Left" Height="25" Margin="380,255,0,0" VerticalAlignment="Top" Width="45"/>
</Grid>
</Window>
這是VB代碼
Class MainWindow
Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles button.Click
Dim dt3 As New DataTable("Waterfall")
dt3.Columns.Add("Load")
dt3.Columns.Add("PF")
dt3.Columns.Add("Spare")
'dt3.rows.add(New Object() {"full load", "0.8", "20%"})
dt3.Rows.Add("full load", "0.8", "20%")
WaterfallDataGrid.ItemsSource = dt3.DefaultView
End Sub
End Class
數據網格不顯示任何數據。它以某種方式顯示摺疊的行。截圖如下:
我認爲這個問題是,如果我沒有預先定義在XAML的列和定義我在vb.net中的行,但尚未在autogeneratecolumn設置爲false,有VB沒有辦法在運行時編程創建列,所以我在這裏看到的是一個摺疊的行。
我認爲這種方法是預先定義XAML中的列,然後將數據綁定到XAML列,但沒有任何代碼工作....真的很沮喪。
我現在測試你的代碼,它的工作原理完全貼你的方式。我很抱歉因爲我對匿名對象的錯誤建議而浪費你的時間。不幸的是,這裏一定會有其他問題引發這個問題,但如果沒有看到足夠大的代碼示例來重現問題,我不能告訴你它會是什麼。 –
...但請注意,我更正了錯字「Objecet」和「itemSource」。但是如果沒有這些固定的東西,它甚至不會編譯,所以我想當你在這裏重新輸入代碼時,它們一定會悄悄進入。 –
對不起Ed。那是我的一個錯字,但是VS中沒有錯別字,因爲它不會另外編譯。 – Tofulover