protected void _setSelection(Object value) {
      var v_selection = value as VSelection;
      if (v_selection == null){
        if(this._selection is VSingleSelection)
          v_selection = new VSingleSelection { Value = value };
        else
          v_selection = new VMultiSelection { Value = value };
      }
      if (this._selection == v_selection) {
        if (this._selection is VSingleSelection) {
          var v_sel = this._selection as VSingleSelection;
          this._txt.Text = "поиск...";
          this._get_selector((s) => {
            s.GetSelection(v_sel, (is_found, args) => {
              if (is_found == true) {
                v_sel.Display = args.selection.Cast<VSingleSelection>().ValueRow[this.DisplayField] as String;
                this._onSelectionChanged();
              } else {
                v_sel.Value = null;
                v_sel.Display = null;
                this._onSelectionChanged();
              }

            });
          });
        } else
          this._onSelectionChanged();
        return;
      }

      if (!v_selection.GetType().Equals(this._selection.GetType()))
        throw new Exception("Несовместимость типов!");
      if (this._selection is VSingleSelection) {
        var v_sel = this._selection as VSingleSelection;
        var v_in_sel = v_selection as VSingleSelection;
        v_sel.Value = v_in_sel.ValueRow[this.ValueField];
        v_sel.Display = v_in_sel.ValueRow[this.DisplayField] as String;
        v_sel.ValueRow = v_in_sel.ValueRow;
        this._onSelectionChanged();
      } else {
        var v_sel = this._selection as VMultiSelection;
        var v_in_sel = v_selection as VMultiSelection;
        if (v_sel != null) {
          v_sel.Value = v_in_sel.Value;
          v_sel.filterParams = (Params)v_in_sel.filterParams.Clone();
          this._onSelectionChanged();
        }
      }
    }
 public static JsonStoreFilter CreFromSelection(VSingleSelection selection) {
   if (selection != null) {
     var locate = new JsonStoreFilter() { FromPosition = 0 };
     locate.Items.Add(new JSFilterItemCondition {
       FieldName = selection.ValueField,
       CmpOperator = JSFilterComparisionOperatorType.Eq,
       FieldValue = selection.Value
     });
     return locate;
   } else
     return null;
 }