public ContainerControl() { InitializeComponent(); Dock = DockStyle.Fill; _userFilterControl = new UserFilter(); _userFilterControl.FilterChanged += (o, e) => { _groupFilterControl.EnableFilter = _userFilterControl.EnableFilter; _groupFilterControl.SelectedGroups.Clear(); _groupFilterControl.SelectedGroups.AddRange(_userFilterControl.SelectedGroups); _groupFilterControl.UpdateDataSource(_userFilterControl.AllGroups.ToArray(), false); ApplyData(); }; _userFilterControl.ColumnsChanged += (o, e) => { _groupFilterControl.ShowNumber = _userFilterControl.ShowNumber; _groupFilterControl.ShowPercent = _userFilterControl.ShowPercent; }; _groupFilterControl = new GroupFilter(); _groupFilterControl.FilterChanged += (o, e) => { _userFilterControl.EnableFilter = _groupFilterControl.EnableFilter; _userFilterControl.SelectedGroups.Clear(); _userFilterControl.SelectedGroups.AddRange(_groupFilterControl.SelectedGroups); _userFilterControl.UpdateDataSource(_groupFilterControl.AllGroups.ToArray(), false); ApplyData(); }; _groupFilterControl.ColumnsChanged += (o, e) => { _userFilterControl.ShowNumber = _groupFilterControl.ShowNumber; _userFilterControl.ShowPercent = _groupFilterControl.ShowPercent; }; }
public void ApplyColumns(UserFilter filter) { gridColumnName.Visible = filter.ShowUsers; gridColumnGroup.Visible = filter.ShowGroups; if (filter.ShowUsers) { gridColumnName.RowCount = !filter.ShowGroups && filter.ShowNumber && filter.ShowPercent ? 2 : 1; } if (filter.ShowGroups) { advBandedGridViewData.SetColumnPosition(gridColumnGroup, 1, filter.ShowUsers ? 2 : 1); } gridColumnUserLoginNumber.Visible = filter.ShowNumber; gridColumnUserLoginPercent.Visible = filter.ShowPercent; gridColumnGroupLoginNumber.Visible = filter.ShowGroups; if (filter.ShowNumber) advBandedGridViewData.SetColumnPosition(gridColumnUserLoginNumber, 0, 0); if (filter.ShowPercent) advBandedGridViewData.SetColumnPosition(gridColumnUserLoginPercent, filter.ShowPercent && !filter.ShowNumber ? 0 : 1, 0); if (filter.ShowGroups) { advBandedGridViewData.SetColumnPosition(gridColumnGroupLoginNumber, 1, filter.ShowPercent && !filter.ShowNumber ? 0 : 1); gridColumnGroupLoginNumber.RowCount = !filter.ShowNumber && !filter.ShowPercent && filter.ShowUsers ? 2 : 1; } gridColumnUserDocsNumber.Visible = filter.ShowNumber; gridColumnUserDocsPercent.Visible = filter.ShowPercent; gridColumnGroupDocsNumber.Visible = filter.ShowGroups; if (filter.ShowNumber) advBandedGridViewData.SetColumnPosition(gridColumnUserDocsNumber, 0, 0); if (filter.ShowPercent) advBandedGridViewData.SetColumnPosition(gridColumnUserDocsPercent, filter.ShowPercent && !filter.ShowNumber ? 0 : 1, 0); if (filter.ShowGroups) { advBandedGridViewData.SetColumnPosition(gridColumnGroupDocsNumber, 1, filter.ShowPercent && !filter.ShowNumber ? 0 : 1); gridColumnGroupDocsNumber.RowCount = !filter.ShowNumber && !filter.ShowPercent && filter.ShowUsers ? 2 : 1; } gridColumnUserVideosNumber.Visible = filter.ShowNumber; gridColumnUserVideosPercent.Visible = filter.ShowPercent; gridColumnGroupVideosNumber.Visible = filter.ShowGroups; if (filter.ShowNumber) advBandedGridViewData.SetColumnPosition(gridColumnUserVideosNumber, 0, 0); if (filter.ShowPercent) advBandedGridViewData.SetColumnPosition(gridColumnUserVideosPercent, filter.ShowPercent && !filter.ShowNumber ? 0 : 1, 0); if (filter.ShowGroups) { advBandedGridViewData.SetColumnPosition(gridColumnGroupVideosNumber, 1, filter.ShowPercent && !filter.ShowNumber ? 0 : 1); gridColumnGroupVideosNumber.RowCount = !filter.ShowNumber && !filter.ShowPercent && filter.ShowUsers ? 2 : 1; } gridColumnUserTotalNumber.Visible = filter.ShowNumber; gridColumnUserTotalPercent.Visible = filter.ShowPercent; gridColumnGroupTotalNumber.Visible = filter.ShowGroups; if (filter.ShowNumber) advBandedGridViewData.SetColumnPosition(gridColumnUserTotalNumber, 0, 0); if (filter.ShowPercent) advBandedGridViewData.SetColumnPosition(gridColumnUserTotalPercent, filter.ShowPercent && !filter.ShowNumber ? 0 : 1, 0); if (filter.ShowGroups) { advBandedGridViewData.SetColumnPosition(gridColumnGroupTotalNumber, 1, filter.ShowPercent && !filter.ShowNumber ? 0 : 1); gridColumnGroupTotalNumber.RowCount = !filter.ShowNumber && !filter.ShowPercent && filter.ShowUsers ? 2 : 1; } }