Silverlight绑定的DataGrid怎么更改列名

时间:2021-08-15 09:58:40
Silverlight的DataGird怎么改列名?比如“姓名”什么的。貌似他一般的DataGrid的属性不一样,求助.

9 个解决方案

#1


额~~我自己找到方法了,可以结贴了。

#2


有一个Header属性

#3


找到那个方法,还是有点问题:
我是用ItemsSource来绑定DataGrid
我在XAML里写了
                <data:DataGrid.Columns>
                    <data:DataGridTextColumn Header="Id" Binding="{Binding ListString}"></data:DataGridTextColumn>
                    <data:DataGridTextColumn Header="Code" Binding="{Binding ListInt}"></data:DataGridTextColumn>
                    <data:DataGridTextColumn Header="Name" Binding="{Binding ListBool}"></data:DataGridTextColumn>
                    <data:DataGridTextColumn Header="Id2" Binding="{Binding ListByte}"></data:DataGridTextColumn>
                    <data:DataGridTextColumn Header="Code2" Binding="{Binding ListFloat}"></data:DataGridTextColumn>
                    <data:DataGridTextColumn Header="Name2" Binding="{Binding ListDouble}"></data:DataGridTextColumn>
                </data:DataGrid.Columns>

这样显示出来的时候除了我自己定义的这些,还有本来的List里的名字,也就是本来应该是6列的,现在出来了12列。。。有办法解决吗。。

#4



<data:DataGrid AutoGenerateColumns="False" />


或者是在代码中指定 AutoGenerateColumns=false;

#5



<data:DataGrid AutoGenerateColumns="False" />
定义自动创建列的属性为false。。就不会自动创建了。。

#6


另外要注意 Header 不是依赖属性,在 XAML 中不可以使用 Binding,只能直接赋值或使用 StaticResource ,但是在代码中则都可以。


这样不行
<data:DataGridTextColumn Header="{Binding XXX}" Binding="{Binding ListBool}" />

只能这样
<data:DataGridTextColumn Header="{StaticResource XXX}" Binding="{Binding ListBool}" />

#7


学习之中,呵呵

#8


设置DataGridTextColumn 的Header就可以了。

#9


1、将自动生成列false
2、手动添加绑定列,然后制定headertext

这个和以前的winform、asp.net是一样的

#1


额~~我自己找到方法了,可以结贴了。

#2


有一个Header属性

#3


找到那个方法,还是有点问题:
我是用ItemsSource来绑定DataGrid
我在XAML里写了
                <data:DataGrid.Columns>
                    <data:DataGridTextColumn Header="Id" Binding="{Binding ListString}"></data:DataGridTextColumn>
                    <data:DataGridTextColumn Header="Code" Binding="{Binding ListInt}"></data:DataGridTextColumn>
                    <data:DataGridTextColumn Header="Name" Binding="{Binding ListBool}"></data:DataGridTextColumn>
                    <data:DataGridTextColumn Header="Id2" Binding="{Binding ListByte}"></data:DataGridTextColumn>
                    <data:DataGridTextColumn Header="Code2" Binding="{Binding ListFloat}"></data:DataGridTextColumn>
                    <data:DataGridTextColumn Header="Name2" Binding="{Binding ListDouble}"></data:DataGridTextColumn>
                </data:DataGrid.Columns>

这样显示出来的时候除了我自己定义的这些,还有本来的List里的名字,也就是本来应该是6列的,现在出来了12列。。。有办法解决吗。。

#4



<data:DataGrid AutoGenerateColumns="False" />


或者是在代码中指定 AutoGenerateColumns=false;

#5



<data:DataGrid AutoGenerateColumns="False" />
定义自动创建列的属性为false。。就不会自动创建了。。

#6


另外要注意 Header 不是依赖属性,在 XAML 中不可以使用 Binding,只能直接赋值或使用 StaticResource ,但是在代码中则都可以。


这样不行
<data:DataGridTextColumn Header="{Binding XXX}" Binding="{Binding ListBool}" />

只能这样
<data:DataGridTextColumn Header="{StaticResource XXX}" Binding="{Binding ListBool}" />

#7


学习之中,呵呵

#8


设置DataGridTextColumn 的Header就可以了。

#9


1、将自动生成列false
2、手动添加绑定列,然后制定headertext

这个和以前的winform、asp.net是一样的