private bool IsDataChange(eDataChange changeType) { return ((_DataChangeType & changeType) == changeType); }
protected override void OnDataSourceChanged(EventArgs e) { if (_MultiColumnDisplay != null) _MultiColumnDisplay.DataSource = null; _DataChangeType |= eDataChange.DataSourceChanged; base.OnDataSourceChanged(e); }
protected override void OnBindingContextChanged(EventArgs e) { _DataChangeType |= eDataChange.BindingContextChanged; base.OnBindingContextChanged(e); }
private void OpenMultiColumnDropDown() { _PopupController = null; _MultiColumnDisplay = null; if (_PopupController == null) { _PopupController = new PopupHostController(); _PopupController.Closed += PopupControllerClosed; } if (_MultiColumnDisplay == null) { _MultiColumnDisplay = CreateMultiColumnDisplayControl(); _DataChangeType = eDataChange.All; } if (IsDataChange(eDataChange.BindingContextChanged)) _MultiColumnDisplay.BindingContext = this.BindingContext; if (_MultiColumnDisplay.DataSource != this.DataSource) { _DataChangeType = eDataChange.All; } if (IsDataChange(eDataChange.DataSourceChanged)) { _MultiColumnDisplay.DataSource = this.DataSource; } if (IsDataChange(eDataChange.DropDownColumnsChanged)) _MultiColumnDisplay.DisplayMembers = _DropDownColumns; if (!_PopupController.PopupUserSize || !_PreservePopupSize) { _MultiColumnDisplay.Height = this.DropDownHeight; _MultiColumnDisplay.Width = this.DropDownWidth; } //tuyenhm if (this._MultiColumnDisplay != null) { if (this._MultiColumnDisplay.Columns.Count > 0) { this._MultiColumnDisplay.Columns[0].Width.Absolute = _Col1Width; } if (this._MultiColumnDisplay.Columns.Count > 1) { this._MultiColumnDisplay.Columns[1].Width.Absolute = _Col2Width; } if (this._MultiColumnDisplay.Columns.Count > 2) { this._MultiColumnDisplay.Columns[2].Width.Absolute = _Col3Width; } } CancelEventArgs cancelArgs = new CancelEventArgs(); OnBeforeMultiColumnPopupOpen(cancelArgs); if (cancelArgs.Cancel) return; Point location = PointToScreen(new Point(0, Height)); ePopupResizeEdge resize = _EnablePopupResize ? ePopupResizeEdge.BottomRight : ePopupResizeEdge.None; _PopupController.Show(_MultiColumnDisplay, location.X, location.Y, Width, Height, resize); if (_MultiColumnDisplay.SelectedNode != null) _MultiColumnDisplay.SelectedNode.EnsureVisible(); _DroppedDown = true; _MultiDropDownOpenedAtTime = DateTime.Now; _DataChangeType = eDataChange.None; base.OnDropDown(EventArgs.Empty); }