如何自定义DataGrid的Header

如何自定义DataGrid的Header,第1张

第一步,我们要做一个新的ColumnHeader。这里直接用来silverlight.net上一位高手的代码,并且做了扩展,主要是添加了Header的点击事件和过滤框的事件,

以及一个新的属性用来保存字段名。应为在实际的项目中,我们不可能在Grid上直接显示数据库的字段名,而是要用中文来显示。代码不是太复杂,就不做解释了。

GridHeader.cs

第二步,在Themes下添加一个Generic.xaml,

这里定义了我们自定义的ColumnHeader的展现方式,包括用了一个Button和TextBox。

关于Generic.xaml我不是太明白这个文件,有些人说会自动产生这个文件,但是我的机器上并没有这个文件,我是手工添加的,现建一个themes下建一个 SilverLight用户控件,然后用上面的内容替换掉自动生成的内容,并且去掉Generic.xaml.cs的public Generic()里面的代码。

第三步,在DataGrid页面上添加Resources。

注意,要在文件头部加上

xmlns:my="clr-namespace:SilverlightDemoAppassembly=SilverlightDemoApp"

就是这个my:GridHeader的namespace和assembly信息。不然就找不到my:GridHeader的了。

第四步,实现DataGrid所在页面的代码。

基础的代码可以见我的前一篇文档。

在获取数据之后,对DataGrid的Header进行了处理。新增了CreateHeader()这个方法。

如果提问者想实现中文显示的指定列头,那只需在一个以c开头的属性里改下textname的属性就可以,把它都改成相对应的中文,如果还想在实现配置数据源形成动态列,那就在属性里继续对数据源进行绑定,把数据库里的相对应的列标绑定正确,然后在事件里在写清楚连接数据库的语句。数据库语句: Using (sqlConnection conn=new SqlConnection("serever=.uid=sapwd=database=库名")) { String Sql="select * from 表名 where"; SqlDataAdapter sda=new SqlDataAdapter(sql.conn)DataSet ds =new DataSet()Sda.Fill(ds) this.dataGridView.DataSouce=SqlHelper.Ds("select *from 表名").Tables[0]}

采纳哦


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11661061.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存