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

WPF DataGrid仅配置1列却显示2列,求排查原因

问题原因及解决办法

嘿,这个问题我之前也碰到过,其实原因很简单:WPF的DataGrid默认会自动生成列!

你绑定的pages集合里的元素是字符串类型,WPF会自动识别字符串的公共属性(比如Length),然后为这个属性生成一列。再加上你手动定义的DataGridTextColumn,自然就显示两列了。

解决方法

只需要给你的DataGrid加上AutoGenerateColumns="False"属性,关闭自动列生成功能,这样就只会显示你手动配置的那一列了。修改后的XAML代码如下:

<DataGrid Name="Menu" 
          HorizontalAlignment="Stretch" 
          VerticalAlignment="Stretch" 
          Background="Gray" 
          HeadersVisibility="None" 
          ItemsSource="{Binding pages}" 
          ColumnWidth="*" 
          CanUserAddRows="False"
          AutoGenerateColumns="False"> <!-- 新增关闭自动列生成的属性 -->
    <DataGrid.Columns>
        <DataGridTextColumn Header="na" Binding="{Binding}" />
    </DataGrid.Columns>
</DataGrid>

另外补充一句:如果之后你绑定的是自定义业务对象,不想让DataGrid自动生成多余的列,也记得设置这个属性哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:15:00