c# - WPF Canvas-based ItemsControl with minimum recycled items? -


i'm using itemscontrol canvas backing panel. need .clear() observablecollection itemscontrol's itemsource, , add new information it, causes controls destroyed , new usercontrols created, sluggish. how can force itemscontrol retain amount of containers after call .clear(), , reuse them when new items added itemsource?

i not sure how efficient in use case, might create derived itemscontrol , override getcontainerforitemoverride , clearcontainerforitemoverride methods put , take item containers cache collection.

public class cachingitemscontrol : itemscontrol {     private readonly stack<dependencyobject> itemcontainers =         new stack<dependencyobject>();      protected override dependencyobject getcontainerforitemoverride()     {         return itemcontainers.count > 0             ? itemcontainers.pop()             : base.getcontainerforitemoverride();     }      protected override void clearcontainerforitemoverride(         dependencyobject element, object item)     {         itemcontainers.push(element);     } } 

Comments

Popular posts from this blog

c# - How to get the current UAC mode -

postgresql - Lazarus + Postgres: incomplete startup packet -