private void Initialise(Column[] _columns, Window _containingWindow)
        {
            InitializeComponent();
            columns   = _columns;
            tableName = columns[0].TableName;
            lblManageFilters.Content = $"Manage {tableName} Filters (0)";

            containingWindow = _containingWindow;

            currentData = DBMethods.MetaRequests.GetAllFromTable(tableName, columns.Select(c => c.Name).ToArray());

            DtgMethods.CreateTable(currentData, tableName, ref dtg, columns, ref dataTable, true);
            dtg.FontSize = 14;

            lblCount.Content = $"Count: {currentData.Count}";

            //try { dtgData.SelectedIndex = 0; }
            //catch { }

            filterManager = new UserControls.FilterManager(columns, this)
            {
                Margin = new Thickness(0, 21.21320344, 0, 0)
            };
            grdFiltersOuter.Children.Add(filterManager);
        }
        /// <summary>
        /// Called whenever changes to the filters are saved
        /// </summary>
        internal void FiltersSaved()
        {
            lblManageFilters.Content   = $"Manage {tableName} Filters ({filterManager.GetFilterCount()})";
            grdFiltersOuter.Visibility = Visibility.Collapsed;

            List <string> tablesReferenced = filterManager.GetTablesReferenced();

            try
            {
                string filterText = filterManager.GetFilterText();

                string sql = ConstructSQL(filterText, tablesReferenced);

                currentData = DBMethods.DBAccess.GetListStringsWithQuery(sql);

                DtgMethods.CreateTable(currentData, tableName, ref dtg, columns, ref dataTable, true);

                lblCount.Content = $"Count: {currentData.Count}";
            }
            catch
            {
                MessageBox.Show("Error: Invalid filter(s)!");
            }
        }