I wasn't sure whether to start a new thread or simply use this once, but I chose the latter, since it completely matches my problem. I have a brand new and pretty fast PC (Core i7-2600 @ 3.40 GHz, 16 GB RAM and the latest OCZ SSD as my system disk). I have almost 5.000 items in my list, which takes ~700 ms to show. If I leave out images on the items, I can shave that down to ~450 ms. Unfortunately, this is still too slow, especially when I compare it to the WinForms version, which is pretty much instant. Besides, the experience will likely be even slower for a lot of my customers, who doesn't have the same computer specifications.
I can see that the WinForms version could be optimized by caching the list of IntelliPromptMemberListItem's if they were the same from time to time, and then using the AddRange() method to add all the items to the list. However, with WPF, it seems that adding all the items is VERY fast (~1-3 ms), while the actual showing of the list is slow - the exact opposite as the WinForms version, as far as I can tell. Since I can't really do much about the Open() method being slow, I'm now asking for tips on how to optimize this, and if there are none, I would like to know if there are any internal optimizations planned for future releases. I know that 5.000 items is quite a bit, but I'm sure that you have customers with even greater needs :)