DataGrid对应列的“Header”属性
DataGrid在绑定“数据源”之后,它对应的“列”的名称就不能改变了吗???
如下图:
[img=http://social.msdn.microsoft.com/Forums/getfile/145581][/img]
改变列名称的代码如下:
var datasource = GetEnumerable(dicList).ToDataSource();
dgrid.ItemsSource = GetEnumerable(dicList).ToDataSource();
for (int i = 1; i < dgrid.Columns.Count; i++)
{
//dgrid.Columns[1].Header = dgrid.Columns[1].Header.ToString().Replace("H", "");
dgrid.Columns[i].Header = i.ToString();
}
this.mainPanel.Children.Add(dgrid);
问题:希望将列名中的“H”去掉,应该怎样修改??? 数据集已经绑定到“DataGrid”了
[解决办法]
我不知道你的需求是什么样,如果不是为了Header的名字动态生成,可以直接在页面上创建列,并指定列名为01、02、03。然后把H01、H02、H03绑定到对应的列上类似于这样,但是AutoGenerateColumns="False"(自动生成列关闭):
<sdk:DataGrid x:Name="dgNearHistoryData" AutoGenerateColumns="False" >
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="01" Binding="{Binding H01}" Width="110"></sdk:DataGridTextColumn>
<sdk:DataGridTextColumn Header="02" Binding="{Binding H02}" Width="*"></sdk:DataGridTextColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
如果你想动态改变列明,其实我倒感觉你可以通过AutoGenerateColumns="True"来实现,这样就会自动去生成列,列明也就是你的GetEnumerable(dicList).ToDataSource()这个对应的列名字,你要是想动态改变名字!你完全可以动态去更改这个集合中列对应的名字!不过方法不太好!
看看其他人有没有更好的方法,直接改名字倒是没玩过
[解决办法]
坐等各位牛人回复,顺便学习下,呵呵
------解决方案--------------------
建议别用动态生成列,直接使用自定义列即可。
http://www.cnblogs.com/chengxingliang/archive/2011/02/15/1955589.html
[解决办法]
刚写了点,可以给你参考一下:
http://hi.baidu.com/king_xhb/item/abb514cac718e728ef466538