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
相关产品推荐
相关产品推荐

