You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF C# DataGrid首列无法填充,其余列正常显示求助

解决WPF DataGrid首列无法显示数据的问题

问题原因

你的DataTable首列名称包含特殊字符/,WPF DataGrid自动生成列时,无法正确解析带特殊字符的列名,导致首列绑定失败、无法显示数据。

解决方案

方案1:手动定义DataGrid列(推荐)

在XAML中关闭自动生成列,手动指定每一列的绑定路径,对于带特殊字符的列名,使用[列名]格式绑定:

<DataGrid x:Name="dataGridBayley4" 
          HorizontalAlignment="Left" 
          Height="315" 
          Margin="76,131,0,0" 
          VerticalAlignment="Top" 
          Width="638" 
          SelectedIndex="0" 
          Grid.RowSpan="1" 
          Grid.ColumnSpan="1" 
          Grid.Row="1" 
          Grid.Column="1"
          AutoGenerateColumns="False">
    <DataGrid.Columns>
        <!-- 带特殊字符的列用[列名]格式绑定 -->
        <DataGridTextColumn Header="Subtest/Subdomain" Binding="{Binding [Subtest/Subdomain]}" />
        <DataGridTextColumn Header="Standard & Scaled Scores" Binding="{Binding [Standard & Scaled Scores]}" />
        <DataGridTextColumn Header="Percentile" Binding="{Binding Percentile}" />
        <DataGridTextColumn Header="Description" Binding="{Binding Description}" />
    </DataGrid.Columns>
</DataGrid>

方案2:修改DataTable列名,移除特殊字符

如果不需要保留原列名,可以修改列名去掉特殊字符,让自动生成列正常工作:

DataTable dt = new DataTable();
// 修改列名,移除特殊字符
dt.Columns.Add("SubtestSubdomain");
dt.Columns.Add("StandardScaledScores");
dt.Columns.Add("Percentile");
dt.Columns.Add("Description");

dt.Rows.Add("1","2","3","4");

dataGridBayley4.ItemsSource = dt.DefaultView;

方案3:强制设置首列宽度

如果首列是因为默认宽度被设为0导致不显示,可以在DataGrid加载后手动设置宽度:

dataGridBayley4.Loaded += (sender, e) =>
{
    if (dataGridBayley4.Columns.Count > 0)
    {
        // 设置为自动宽度,或指定固定宽度
        dataGridBayley4.Columns[0].Width = DataGridLength.Auto;
        // 或者 dataGridBayley4.Columns[0].Width = new DataGridLength(150);
    }
};

验证说明

你通过MessageBox.Show(dt[0][0])能看到数据,说明DataTable本身数据正常,问题出在DataGrid的列绑定环节,方案1能彻底解决特殊字符导致的绑定问题,是最可靠的做法。

内容的提问来源于stack exchange,提问作者Charles Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 07:06:22