I was extremely surprised to see that the out-of-the-box configuration of ComboBox doesn't appear to allow you to set the value of a ComboBox with a remote store unless the Store is loaded.

Essentially I have a form with many "lookup" combo boxes (approximately 15) - I want the value of these ComboBoxes to be set using loadRecord on the form, but I only want the underlying store to load if the user attempts to change that value. After all, it is unlikely they're going to change every field on the form!

If there is already a way to do this in ExtJS that I have missed, then please correct me, but from hours of investigation I couldn't find a reasonable way.

So, I came up with this (first attempt at a) solution:

Code:
Ext.define('My.patched.form.field.ComboBox, {
  override: 'Ext.form.field.ComboBox,

  setValue: function(value, doSelect) {
    if(this.skipStoreValidation && !Ext.isEmpty(value) && !value.isModel && !(value instanceof Array)) {
      var processedValue = value[this.valueField];            
      var rawValue = value[this.displayField];
      this.displayTplData = [value];

      this.setHiddenValue(processedValue);
      this.value = processedValue;

      this.setRawValue(this.getDisplayValue());
      this.checkChange();

      if(doSelect !== false) {
        this.syncSelection();
      }
      this.applyEmptyText();
      return this;
    } else {
      return this.callOverridden(arguments);
    }
  },

  skipStoreValidation: false
});
Simply by setting the combobox's skipStoreValidation config to true, we can now allow the original value to be set.

Sure this will require some further tweaks, but seems to be working as expected for the moment.

Please could you build something like this into the framework?