10. For lists object use CanContentScroll=true and IsVistualizing = true

11. In Datagrid use

EnableColumnVirtualization = true

EnableRowVirtualization = true,

Binding=x, IsAsync = true

When working with large mount of data and the source change during runtime consider stop the binding make the change than connect the binding again,

Even if ItemsControl use virtualization the Connected Data isn’t, that means Big-Data on your app memory, you can implement self Data-Virtualization as binding source to increase app performance (no built in solution on the framework)