code: function() {
  
  		var argument_value = this._argument.getValue();
  
  		if (argument_value) {
  
  			this._refreshDataSource(argument_value);
  
  			if (this._observable_listener == null) {
  
  				if (argument_value.isCollection) {
  
  					this._observable_listener = argument_value.on('collection_changed', this._onObservableChanged, this);
  					this._observable = argument_value;
  
  				} else if (argument_value.isProperties) {
  
  					this._observable_listener = argument_value.on('property_changed', this._onObservableChanged, this);
  					this._observable = argument_value;
  
  				}
  
  			}
  
  		} else if (this._own_collection) {
  
  			this._value.removeAll();
  
  		} else {
  
  			// will be called only when "own_enumerable_mode" is off, cause otherwise this._own_collection is always true
  			this._createCollection(null);
  
  		}
  
  		this._fire('after_refresh');
  		this._fire('changed');
  
  	}
docs: Get new value from the `_argument`, and create a new instance of local Enumerable, or update the content of the old one