code: function(view, property_name, assign_config) {
  
  		this.guid = Lava.guid++;
  		this._view = view;
  		this._property_name = property_name;
  
  		if (assign_config) {
  
  			this._assign_argument = new Lava.scope.Argument(assign_config, view, view.getWidget());
  			this._assign_argument.on('changed', this.onAssignChanged, this);
  			this._value = this._assign_argument.getValue();
  			view.set(this._property_name, this._value);
  			this.level = this._assign_argument.level + 1;
  
  		} else {
  
  			// this is needed to order implicit inheritance
  			// (in custom widget property setters logic and in view.Foreach, while refreshing children).
  			// Zero was added to simplify examples from site documentation - it's not needed by framework
  			this.level = view.depth || 0;
  
  			this._value = view.get(this._property_name);
  			this._property_changed_listener = view.onPropertyChanged(property_name, this.onContainerPropertyChanged, this);
  
  		}
  
  		Lava.schema.DEBUG && Lava.ScopeManager.debugTrackScope(this);
  
  	}
docs: Create the PropertyBinding instance. Refresh value from view's property or set value from assign
  @param {Lava.view.Abstract} view Scope's owner view, to which it's bound
  @param {string} property_name
  @param {_cAssign} assign_config Config for the Argument, in case this scope is created in "assign" mode