首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

DataGrid对应列的“Header”属性,该如何处理

2013-03-17 
DataGrid对应列的“Header”属性DataGrid在绑定“数据源”之后,它对应的“列”的名称就不能改变了吗???如下图:[i

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

热点排行