不知道原生控件有没有办法实现,但可以自定义控件哇,WPF现在是开源的,直接把官方DataGrid代码拷过来,参考FrozenColumnCount自已实现改咯。
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的行高度和列宽度必须一致。