I recently saw a video about a universal modern app where people were suggested to use the modern toolkit for desktop and mobile applications. I'm rewriting an Ext5 + Sencha touch app so I thought this is a good idea as I don't want to support the old legacy browsers anyway so the overhead of the classic toolkit is not needed.

Anyway, while starting off with a simple list with a virtual store bound to it to load huge amounts of data I discovered many flaws which made it nearly impossible to archive what I wanted. The main issue is that lots of the events documented are not fired.

1) Missing fireevent load for virtual stores:
- adding a load listener to a store doesn't work
- I have to manually add a load function, callParent and fire the load event to trigger the listeners
- autoLoad doesn't do anything as the store autoloads anyway when bound over a viewmodel to a view

2) Events for Ext.dataview.List not firing when nested inside of a panel:
- Using Ext.viewport.add with a List works fine. All listeners are triggering.
- Using Ext.viewport.add with a panel which has a List (as item with xtype) nested prevents listeners like "show", "beforeshow", "added" etc. from working

3) Databinding and the issue never to know when data is bound to a view to execute certain functionality
- Binding an ajax virtual store to a list (or even a grid) using a viewmodel is not working like I expect it to do as the view never knows when the store is available
- Examples:
-- When listening to the store load event and trying to select the first element of a list, even tho the store is loaded the view can't select the first item cause somehow the binding is delayed
-- When using something like afterRender in the view, the store is null thus no item can be selected
-- When using a "show" listener for a list, also no record can be selected as the store is not bound yet
- The only way I found to select something based on the stores data is to use Ext.defer (which is a bad practise). Some event is needed to hook into point where the store is actually bound to a view to execute further functionality based on the data received.

Biggest issue for me is #3 - I just tried it with a List and also with a grid and it currently prevents me from implementing the modern toolkit.