none
在ListBox中使用RichTextBox出现数据混乱现象 RRS feed

  • 问题

  • 因为要做图文混排的显示效果,因此使用了RichTextBox作为ListBox的item项来使用,在数据量比较多的时候(屏幕一版显示不完),上下滑动 ListBox、或者干脆在数据绑定完成进行展示的时候数据就乱了。例如:我的数据源中是个ObservableCollection, RichTextBox上要展示的是【1、2、3、图片A、图片B、4、5、图片C、汉字1、汉字2】这样的图文混排时,会显示出各种乱数据,例如【 1 图片A文字1 、2文字2、3 图片A  】,也就是说ListBox的item项的数据混乱了。请问有没有解决的办法。
    2012年1月17日 2:38

答案

  • 自己解决了,错误原因是这样的:

    因为是图文混排,所以用的办法是在 RichTextBox的Loaded事件中操作了Blocks属性,然而因为ListBox这个控件有一个机制,就是当某些Item不在当前页面(也就是说不显示的时候)是“关闭”的,关闭不够准确但是不知道怎么描述。当上下滑动时,之前关闭的Item会执行Loaded事件,但是呢其实Item并没有销毁,因此导致Blocks中的Paragraph中的Inlines会追加多次,导致控件看上去像是数据混乱了。


    • 已标记为答案 caisai 2012年1月17日 6:29
    • 已编辑 caisai 2012年1月17日 6:30
    2012年1月17日 6:29

全部回复

  • 自己解决了,错误原因是这样的:

    因为是图文混排,所以用的办法是在 RichTextBox的Loaded事件中操作了Blocks属性,然而因为ListBox这个控件有一个机制,就是当某些Item不在当前页面(也就是说不显示的时候)是“关闭”的,关闭不够准确但是不知道怎么描述。当上下滑动时,之前关闭的Item会执行Loaded事件,但是呢其实Item并没有销毁,因此导致Blocks中的Paragraph中的Inlines会追加多次,导致控件看上去像是数据混乱了。


    • 已标记为答案 caisai 2012年1月17日 6:29
    • 已编辑 caisai 2012年1月17日 6:30
    2012年1月17日 6:29
  • 请问最终是如何解决的呢?
    2012年1月17日 10:29
  • 在给Blocks追加paragraph之前调用一下它的clear方法就好了。
    2012年1月17日 12:12