两个DataGrid垂直滚动条同步滚动

时间:2022-01-15 17:12:21

在高校排课模块中有这样一个需求:一条教学班记录有多列信息,满屏显示也无法显示完所有列,在DataGrid中出现水平滚动条

其中教学班代码、课程名称、星期一到星期五这七列的信息需要同时在窗口中全部显,如下图所示

两个DataGrid垂直滚动条同步滚动

而从课程代码到授课教师22列是参考信息,不必全部列同时显示在窗口中,如下面的三幅图片所示

两个DataGrid垂直滚动条同步滚动

两个DataGrid垂直滚动条同步滚动

两个DataGrid垂直滚动条同步滚动

在这不必全部列同时显示的22列中,如需要参考某列信息可使用调整列显示顺序功能拖动靠左的位置

两个DataGrid垂直滚动条同步滚动

两个DataGrid垂直滚动条同步滚动

为了解决拖动水平滚动条查看不必同时显示的22列教学班信息时

需要同时在窗口中全部显示的教学班代码、课程名称、星期一到星期五这七列信息不被隐藏这个问题

笔者使用了两个DataGrid,同时全部显示的七列放在左边的DataGrid中,不必同时显示的22列放在右边的DataGrid中(如上图所示)

但将列信息放在两个DataGrid中就出现需要解决一个问题,当拖动左边或右边DataGrid的垂直滚动条时,两个DataGrid必须同步在垂直方向滚动

解决方法:两个DataGrid对象保存另一个DataGrid对象的引用,并在DataGrid的滚动事件中设置垂直滚动条的位置为相同值

 

实现方法和代码 

未完待续......