Rearranging Content in WrapGrid: Moved Controls Recreated


  • I'm using a WrapGrid inside of a GridView to hold my in-house components.  Whenever I rearrange (drag & drop) the components, when the element is dropped, it appears that the GUI end (not the data end) is being reconstructed.  This is an issue when the component is getting data from a large file, since that data needs to be rebuffered.  (I *think* that's what is causing the slow-down, since the speed is relative to the size of the data file.)  Is there any way to specify that I don't need the GUI to be reconstructed, and that the old one will do?

    Possibly on a related note:  On removing an element from the Platform::Collections::Vector that stores the bound data (and thus also removing the bound component from the gui), the speed of the operation appears to be related to the size of the data.  Interestingly, adding the data back to the vector is quite fast, it is the removal is slow.  (Perhaps the above problem comes from an item being removed from the vector and then added back to the correct spot?  Or it could be a combination of removing from the vector, then rebuffering on reloading the data.)

    In summary, I can understand that buffering data is slow, but I'm confused as to:

    1.  Why does the gui get recreated when I rearrange components (and can I prevent it?), and

    2.  Why is *removing* data (and thus the graphical element) so slow?

    Thank you!

    PS:  I'm using C++.

    Friday, September 21, 2012 11:51 PM