OK - I think I've solved the problem.
I've got a callback on an AJAX request which runs the following code:
I've got a component called userlist1 which I manually bind a Store to using the bindStore function, and then load the response data (which is an array of User model instances) into the Store. This example is using a predefined Store definition, but it's trivial to create a temporary Store on the fly (I'd imagine) and then bind that to a View.
var list = Ext.getCmp("userlist1");
var store = Ext.getStore("Users");