请注意,此操作是在
我有一个 ListBox,其中包含一些
这是通过使用
我有一个树,其中每个
WPF/C#
中完成的,而不是在 .net2.0
的 Winforms
中。我有一个 ListBox,其中包含一些
Class X
对象。Class X 包含一个 BitmapSource
对象,该对象在列表框中显示,因此它显示为类似于 [Image] [Text]
的形式。这是通过使用
CreateBitmapSourceFromHBitmap
加载的 - 请注意,我在此调用期间调用 DeleteHBitmap
来删除 HBitmap
的句柄,这是众所周知的,在 Google/等网站上可以看到相关帖子。我有一个树,其中每个
TreeViewItem
都包含一个上述提到的 ListBox
- 通常树中加载了多个项目。用户可以将这些图像拖放到不同的 TreeViewItems 中。为了处理这些操作,我手动调用以下操作:<code>
ItemCollection.RemoveAt
</code>
<code>
ItemCollection.Insert
</code>
要将图像从ListBox项集合中移动
,请注意在插入时我创建了一个新的Class X
对象来插入到ListBox
项集合中。
我注意到当我多次调用此操作时会出现内存泄漏,持续拖放5-10分钟。
我的问题是:
我是否正确处理了BitmapSource
的移动?我是否做了什么导致图像没有完全从ItemCollection
中删除?
还是我错过了一些基本的东西?