当前位置:编程学习 > C#/ASP.NET >>

WPF DataGrid 最后一列显示空白

请教大家一个问题,WPF 我用DataGrid控件 自动绑定数据 每一列Width用*来表示。如下

<my:DataGridTextColumn Header="商品类型" x:Name="ProductType" Width="1*" Binding="{Binding Path=CATALOGNAME}"/>
                <my:DataGridTextColumn Header="品牌名称" x:Name="MNAME" Width="0.5*" Binding="{Binding Path=BRANDNAME}"/>
                <my:DataGridTextColumn Header="商品型号" x:Name="MODUEL" Width="0.5*" Binding="{Binding Path=MODEL}"/>

启动程序,窗体显示正常 如下图


我用AvalonDock那个第三方控件。当有两个DocumentContent分配整个Document的时候。DataGrid 列就出现了问题。现有的列不平均分布各自DataGrid的宽度。最后一列有一个很大的空白,而且无法选中。网上查了下。说只有当DataGrid的宽度=各列宽度的总和的情况下。那个恶心的空白就不会出现。但是我的程序各列是按比例分布的。如果写成固定的宽度值。如果窗体拖大,或者缩小,难道还得重新计算再重新分配?没有尝试这种方法。如下图。

错误图例


请教了。谢 --------------------编程问答-------------------- --------------------编程问答-------------------- 有没有人告诉我这是为啥啊 --------------------编程问答-------------------- 在你最后一列的定义上,加上Width ="*" 就可以了
例如:<DataGridTextColumn IsReadOnly ="True"  Binding ="{ Binding SourceSystemName }" Width ="*"/> 

我也刚刚遇到这个问题,纠结了半天。
参考这篇文章:http://social.msdn.microsoft.com/Forums/en/wpf/thread/82d1725f-8a97-4c4b-b4bc-b70cdfae2275
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,