首页 新闻 会员 周边

WPF DataGrid 如何实现首行固定?

0
悬赏园豆:50 [待解决问题]

如题,已知控制列固定,设置FrozenColumnCount属性即可,DataGrid有此属性,行固定没有。那么行固定该怎么实现呢?

Finder~的主页 Finder~ | 初学一级 | 园豆:11
提问于:2022-12-13 15:53
< >
分享
所有回答(2)
0

不知道原生控件有没有办法实现,但可以自定义控件哇,WPF现在是开源的,直接把官方DataGrid代码拷过来,参考FrozenColumnCount自已实现改咯。

Adming | 园豆:119 (初学一级) | 2023-01-04 13:54
0

WPF DataGrid默认不支持固定行的功能,但是可以通过一些技巧来实现行固定。

一种方法是将固定行作为表头,使用DataGrid的Headers属性来实现。具体步骤如下:

在DataGrid的顶部添加一个单独的行,作为固定行。

设置该行的高度,并将该行的数据绑定到要固定的数据。

将DataGrid的HeadersVisibility属性设置为Column,并将DataGrid的CanUserAddRows和CanUserDeleteRows属性都设置为False,这样就可以隐藏DataGrid的默认表头和行添加/删除功能。

设置DataGrid的ScrollViewer.VerticalScrollBarVisibility属性为Auto或Visible,以确保滚动条的出现。

另一种方法是使用两个DataGrid控件,一个用于固定行,另一个用于滚动的行。具体步骤如下:

创建两个DataGrid控件,一个用于固定行,另一个用于滚动的行。

将固定行的DataGrid的Height属性设置为固定值。

将滚动行的DataGrid的Margin属性设置为固定行的DataGrid的Height值,这样可以将滚动行放在固定行下面。

设置滚动行的DataGrid的列宽和列数量与固定行的DataGrid相同,这样可以使列对齐。

将固定行的DataGrid的数据源与滚动行的DataGrid相同,这样可以确保两个DataGrid的数据相同。

需要注意的是,使用这种方法会增加代码的复杂度,并且需要注意两个DataGrid的行高度和列宽度必须一致。

Technologyforgood | 园豆:5633 (大侠五级) | 2023-04-08 15:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册