/// <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); } }
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(); } } }
/// <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; }