DataGrid控件为什么会多出来一列

sftl25789 2010-08-31 06:32:43
我用DataGrid控件显示数据,我发现总是多出来一列空列,没有任何数据。
请问这怎么解决呀?
我已经将AutoGenerateColumns设置为false了。还是不行。
...全文
970 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaaaa4324vcv 2012-05-09
  • 打赏
  • 举报
回复
把datagrid的IsReadOnly属性设为ture就行。。。
sftl25789 2010-09-03
  • 打赏
  • 举报
回复
即使是调整好宽度,空列还是存在的呀,而且列宽是可以拖动的。一拖动就出现水平滚动条,还是能看见。
barely 2010-09-02
  • 打赏
  • 举报
回复
把宽度调好就没有了.你的水平滚动条没出来吧.
sftl25789 2010-09-02
  • 打赏
  • 举报
回复
没有人遇到这样的情况么?
Harrison_2009 2010-09-02
  • 打赏
  • 举报
回复
我也有遇到过,空列是在最后一列的~不过有时会没有,不知是什么原因~
sftl25789 2010-09-02
  • 打赏
  • 举报
回复
datagrid我没有使用任何自定义的模板。都是使用的系统默认模板。只不过进行了一些属性的设置,如下

<Setter Property="Width" Value="330"/>
<Setter Property="AutoGenerateColumns" Value="False"/>
<Setter Property="RowDetailsVisibilityMode" Value="VisibleWhenSelected"/>
<Setter Property="BorderBrush" Value="#FF339A99"/>
<Setter Property="BorderThickness" Value="0,1,0,0"/>
其他的都没设置。
sftl25789 2010-09-02
  • 打赏
  • 举报
回复
datagrid我没有使用任何自定义的模板。都是
数据源结构是:
public class Book
{
public string name { get; set; }
public string PageCount { get; set; }
public string Title { get; set; }
public string PageNum{ get; set; }
}
List<string> books = new List<string>();
pl.ItemsSource = books;
我没有网络空间没法截图传上来,多出来的那一列就跟在最后面,没有列头和任何内容,但是也能调整列宽。
效果和魏永超的《银光志》在第343页图10.17一样,都是最后面出来一列没有任何数据的列。
我也是按这书上的方法加载的数据。
jv9 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sftl25789 的回复:]
如果注释掉上面的代码,是不会产生空列了,但是对列的定义样式就没有了,而且我只想显示List其中2个列的数据,该怎么定义呀?
[/Quote]

能抓图看看你的空列么?另外看看你的数据集合。应该还是模板问题造成的。
sftl25789 2010-09-01
  • 打赏
  • 举报
回复
如果注释掉上面的代码,是不会产生空列了,但是对列的定义样式就没有了,而且我只想显示List其中2个列的数据,该怎么定义呀?
jv9 2010-09-01
  • 打赏
  • 举报
回复
使用true的时候,把下面代码注释掉:

<d:DataGrid.Columns>
<d:DataGridTextColumn Header="主题" Foreground="#FF026668" Width="197" IsReadOnly="True" Binding="{Binding Title}"/>
<d:DataGridTextColumn Header="章节" Foreground="#FF026668" Width="107" IsReadOnly="True" Binding="{Binding PageNum}" />
</d:DataGrid.Columns>

然后看看运行效果。
sftl25789 2010-09-01
  • 打赏
  • 举报
回复
我也试着把AutoGenerateColumns设置为true,但是还是不行
下面是xaml代码:
<d:DataGrid x:Name="pl" AutoGenerateColumns="True" RowDetailsVisibilityMode="VisibleWhenSelected" SelectionChanged="pl_SelectionChanged">
<d:DataGrid.Columns>
<d:DataGridTextColumn Header="主题" Foreground="#FF026668" Width="197" IsReadOnly="True" Binding="{Binding Title}"/>
<d:DataGridTextColumn Header="章节" Foreground="#FF026668" Width="107" IsReadOnly="True" Binding="{Binding PageNum}" />
</d:DataGrid.Columns>
</d:DataGrid>
绑定的数据源是一个我自己定义的List,没有空列,但是List中的列数比DataGrid中的列数多,我是显示了其中的两列数据。
jv9 2010-09-01
  • 打赏
  • 举报
回复
建议楼主把代码贴出来看看,或者你把AutoGenerateColumns设置为true看看是否有空行。出现空行,是你数据集合中的问题,你也可以尝试debug看看数据集合中是否有空白行。
badi888 2010-09-01
  • 打赏
  • 举报
回复
是不是做了其他事情 可以到datagrid中看看是不是多写了DataGridTextColumn。。。

8,734

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧