加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在添加项目时冻结一个listboxitem

发布时间:2020-12-15 17:47:18 所属栏目:百科 来源:网络整理
导读:我们有一个ListBox有一些项目.项目通过ObservableCollection插入列表框中.其中一些项目可以在ListBox中进行编辑.然而,如果在索引编辑的项目的索引,ListBox的整个内容向下移动. 我们想要做的是:如果一个项目处于编辑模式,我们希望冻结其在屏幕上的位置.如果
我们有一个ListBox有一些项目.项目通过ObservableCollection插入列表框中.其中一些项目可以在ListBox中进行编辑.然而,如果在索引<编辑的项目的索引,ListBox的整个内容向下移动. 我们想要做的是:如果一个项目处于编辑模式,我们希望冻结其在屏幕上的位置.如果将项目添加到集合中,并且项目周围的UI会发生更改,则会很好.但是项目的位置在屏幕上应保持不变. 到目前为止我唯一可以做的事情就是附加到ScrollChanged事件,最多使用BringIntoView或ScrollIntoView方法来确保该项目始终显示在UI的某个位置,但是我无法锁定它位置. 有人做过这样的事吗?

解决方法

我认为以下将解决您的问题:

>进入编辑模式时,请保留对要编辑对象的引用,列表框中的索引和ScrollViewer的Horizo??ntalOffset.
>在ObservableCollection.CollectionChanged事件的处理程序中,找到您编辑的对象的新索引,如果索引已更改,请将已编辑的项目与现在将其替换的项目进行交换(或者如果要保留某个顺序的其他逻辑) .然后,如果ScrollViewer.Horizo??ntalOffset更改,将其移回到所述偏移量.

这将确保您正在编辑的项目将始终保持在列表和UI中完全相同的位置.

希望这能帮助你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读