Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Need a sample for WPF TreeView search with Virtualization and Load On Demand

I need to implement search feature in WPF TreeView(basically I need to remember the last user selection). I have tried various approaches suggested but nothing works as virtualization is enabled in my TreeView and child nodes are loaded only when a parent node is expanded(lazy loading).

Anyone knows of a sample having these three things(Virtualization, Load-on-demand and Search) implemented together?

like image 347
akjoshi Avatar asked Sep 15 '10 07:09

akjoshi


1 Answers

Have a look at this MSDN forum thread, Bob from MS explains the problem in implementing this feature.

the cause is the VirtualizingStackPanel try to generate a item for display, but it has a generator already in your project to generate the expanded items (in the OnTreeNodeExpanded event handler). It occurs conflict with two generators. VirtualizingStackPanel can generate the required item at run-time, it also generate them in BringIndexIntoView method. The code of the StartAt method is to check the generator, if it isn't null, throw the exception "Cannot call StartAt when content generation is in progress". So, the sample populates all items to the bound source in the InitializeComponent(), and let the BringIndexIntoView method to generates the container for the item.

A sample reproducing the problem is also attached in that thread.

So at present there seems to be no solution for this approach :(

like image 147
akjoshi Avatar answered Oct 16 '22 21:10

akjoshi