private void InvokeGrid(TabPage tabPage)
        {
            string name = tabPage.Text;

            if (!_gridAndData.ContainsKey(name))
            {
                return;
            }
            if (!_gridAndData[name].GridAndDataWrapper.GridInvoked)
            {
                tabPage.Controls[0].Visible = false;
                var grid = LoadGridControl(name, tabPage);

                grid.SelectionChanged += Grid_SelectionChanged;
                _gridAndData[name].GridAndDataWrapper.GridHelper  = CreateGrid(grid, name);
                _gridAndData[name].GridAndDataWrapper.GridInvoked = true;
                _gridAndData[name].GridAndDataWrapper.GridHelper.Grid.FormatRow += GridOnFormatRow;
                _gridAndData[name].GridAndDataWrapper.DateColumnGetter           = GetDateColumnGetter;
                ResizeAllToCurrentSize();
            }
            _currentGrid = _gridAndData[name].GridAndDataWrapper;
            RecalcFilterBox(_currentGrid.Filter);
            ApplyFilter();
        }
 internal GridWrapperControl(Action <ModelFilterValues> filterRecalcAction, GridAndDataWrapper <T> gridAndData)
 {
     InitializeComponent();
     _recalcFilter = filterRecalcAction;
     _gridAndData  = gridAndData ?? throw new Exception("Grid and data can't be null");
 }