docs: function () {
  
              var bindings = this._cfg.bind;
              var isBound = false;
              // it doesn't make sense to bind both index and value,
              // so we just state that the index takes precedence on the value
              if (bindings.selectedIndex) {
                  var index = this._transform(bindings.selectedIndex.transform, bindings.selectedIndex.inside[bindings.selectedIndex.to], "toWidget");
                  if (index != null) {
                      if (!this.isIndexValid(index)) {
                          index = -1;
                      }
                      return index;
                  }
                  isBound = true;
              }
              if (bindings.value) {
                  var newValue = this._transform(bindings.value.transform, bindings.value.inside[bindings.value.to], "toWidget");
                  if (newValue != null) {
                      return this.getIndex(newValue);
                  }
                  isBound = true;
              }
  
              if (!isBound) {
                  this.$logWarn(this.BINDING_NEEDED, [this.$class, "selectedIndex"]);
              }
          }