Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Listbox : UI virtualization and grouping

3 views
Skip to first unread message

Raphaël

unread,
Dec 6, 2005, 5:15:02 AM12/6/05
to
Hello

I just discovered that UI virtualization is incompatible with grouping, and
I ma stuck because of that.

My scenario consists of a flatten images folders arborescence displayed in a
listbox.
I.e. something like this : http://www.xerto.com/images/screen-shot.png
The only difference is that images are grouped according to their folder
(rather than tags) and headers don't have a "roll up" button.
Moreover, inside each group (each folder), images can be sorted, and a
folder can contains an arbitrary number of images.

To do this, I have either a list containing an aggregated images list
(containing images located in each folder) either an aggregated folders list
(containing the flatten folders hierarchy). My first idea was to use the
imageslist with a ListBox, while using the grouping feature from
ItemCollection. Since I already developped a VirtualizingTilesPanel, il would
have been really simple to do.

However, as I feared, grouping items prevents the use of UI virtualization.
a) Do you plan to support UI virtualization with grouping in ListBoxes ?
b) I need a workaround, and I have some ideas but I am not sure whether it
could work or not.

Here are those ideas :
1) Creating a ItemGroupPanel that I could use as the root panel for the
listbox. The idea is to implement IScrollInfo to perform a logicial scrolling
among the groups and the groups children (since the children panels are
virtualizable, they implement IScrollInfo). However, I don't know if I could
enforce the virtualization on the children panels.
2) Binding my listbox to the folders list, with a DataTemplate including a
header and a listbox for images. Then, create a panel that implements
IScrollInfo, same as above
3) Creating a custom control derived from Selector.


Would someone have any advice about this please ? Thanks in advance.
Regards,
Raphaël.

0 new messages