Gangz 发表于 2022-12-19 16:38:07

如何在Grid的itemSource改变的,保持选中状态不变


场景:画面左右用了两个Grid。右边Grid的数据,是通过左边Grid选中的主键来调用Filter方法筛选出来的(主表和子表)。

因为右边的Grid可以追加新的数据,客户希望右边追加的数据没有把项目填满的时候,左边的Grid,选中状态不能改变。(不能切换数据)

现在左边的Grid,可以编辑,可以追加行,也可以排序。(行追加功能是写了一个按钮调用addnew方法实现的)

现在发现追加行,Grid会把选中状态自动移动到新的行里。我尝试用selectionChanging写逻辑,然后执行e.cancel=true去解决,但是如果点了排序键(升序)以后再追加行,选择项目就又回到新追加的行了。

有什么好的方法可以保持操作数据视图,选中状态不变么?

※现在的SelectionMode是CellRange

Richard.Ma 发表于 2022-12-19 21:48:48

建议发一个重现问题的demo上来,我来协助验证一下

Gangz 发表于 2023-1-4 18:25:31

Richard.Ma 发表于 2022-12-19 21:48
建议发一个重现问题的demo上来,我来协助验证一下

不好意思,代码在内网 带不出来。
已经换了一种实现方式解决了。

Richard.Ma 发表于 2023-1-4 18:32:16

:hjyzw:好的,问题解决就行

nidada 发表于 2024-11-14 14:54:37

Gangz 发表于 2023-1-4 18:25
不好意思,代码在内网 带不出来。
已经换了一种实现方式解决了。

请问你怎么解决的啊?每次数据更新后都会默认选中第一行,想保持之前的选中状态

Richard.Ma 发表于 2024-11-14 18:04:51

选中的行可以直接通过grid.collectionView.currentItem来获取或者设置

所以你只要重设数据源前获取到item,设置数据源后,再设置为相同的item即可

比如设置为第四项
theGrid.collectionView.currentItem=theGrid.collectionView.items
页: [1]
查看完整版本: 如何在Grid的itemSource改变的,保持选中状态不变