我正在将DataTable绑定到DataGrid,但前两列始终为空,尽管它显然有内容。
例如, DataTable 包含以下内容:
╔═════════╦═════════╦═════════╦═════════╗
║ Columm1 ║ Column2 ║ Column3 ║ Column4 ║
╠═════════╬═════════╬═════════╬═════════╣
║ A1 ║ A2 ║ A3 ║ A4 ║
║ B1 ║ B2 ║ B3 ║ A4 ║
║ C1 ║ C2 ║ C3 ║ C4 ║
╚═════════╩═════════╩═════════╩═════════╝
可以通过遍历行来确认内容,这些行显示正确的输出:
foreach (DataRow r in Test.Rows)
{
MessageBox.Show(r[0] + ", " + r[1] + ", " + r[2] + ", " + r[3]);
}
但是,当我最终将DataTable绑定到DataGrid时......
datagrid.DataContext = Test.DefaultView;
DataGrid 的前两列缺少:
╔═════════╦═════════╦═════════╦═════════╗
║ Columm1 ║ Column2 ║ Column3 ║ Column4 ║
╠═════════╬═════════╬═════════╬═════════╣
║ ║ ║ A3 ║ A4 ║
║ ║ ║ B3 ║ A4 ║
║ ║ ║ C3 ║ C4 ║
╚═════════╩═════════╩═════════╩═════════╝
我不知道为什么。 DataGrid似乎配置正确。
<DataGrid x:Name="datagrid" HorizontalAlignment="Left" Margin="810,142,0,0"
VerticalAlignment="Top" Height="495" Width="400" IsReadOnly="True"
ItemsSource="{Binding}" BorderThickness="0,1,1,1"/>
列名包含标点符号。删除那些解决了这个问题。
答案 0 :(得分:2)
wpf如果列名中有特殊字符或标点符号,则Datagrids会出现问题。如果删除这些字符,它应该按预期运行。