コード例 #1
0
 /// <summary>
 /// Копирует значения всех атрибутов в destination
 /// </summary>
 /// <param name="destination"></param>
 public void ApplyTo(VMultiSelection destination) {
   if (destination != null) {
     destination.Inversion = this.Inversion;
     if(!String.IsNullOrEmpty(this.ValueField))
       destination.ValueField = this.ValueField;
     destination.Values.Clear();
     destination.Values.AddRange(this.Values);
   }
 }
コード例 #2
0
    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();
        }
      }
    }
コード例 #3
0
 /// <summary>
 /// Создает объект типа VMultiSelection из строки
 /// </summary>
 /// <param name="selection">Строка в формате "id1;id2;..." или "флагИнверсии||id1;id2;...",
 ///                         где флагИнверсии = 0(значение по умолчанию) или 1, если флагИнверсии = 1, то указанные идентификаторы строк яляются исключениями из выборки</param>
 /// <returns></returns>
 public static VMultiSelection Create(String selection) {
   var v_rslt = new VMultiSelection();
   v_rslt._pars(selection);
   return v_rslt;
 }