private void cat10_butt_Click(object sender, RoutedEventArgs e) //click en la redondita CAT10
        {
            if (f.ComprobarCAT10() == true)                             //si hay paquetes de CAT10
            {
                //asignamos categoría y llenamos la tabla grande
                this.cat = 10;
                this.fillgridwithdata(this.dataCAT10);

                //marcamos el botoncito de cat10
                cat10_butt.IsChecked = true;

                //vaciamos la tabla pequeña
                dataexpanded.ItemsSource = null;
                dataexpanded.Items.Clear();
            }
            else
            {
                MessageBox.Show("No CAT10 packages found");

                //marcamos botoncito que había marcado antes de darle
                cat10_butt.IsChecked = false;
                if (this.cat == 20)
                {
                    cat20_butt.IsChecked = true;
                }
                if (this.cat == 21)
                {
                    cat21_butt.IsChecked = true;
                }
            }
        }
        private async void cargarbut_Click(object sender, RoutedEventArgs e) // botón OPEN FILE
        {
            //vaciamos las tablas
            gridCAT.ItemsSource      = null;
            dataexpanded.ItemsSource = null;
            gridCAT.Items.Clear();
            dataexpanded.Items.Clear();

            //escondemos botones para evitar erroes
            searchbox.Visibility      = Visibility.Hidden;
            clearsearchbut.Visibility = Visibility.Hidden;
            searchbut.Visibility      = Visibility.Hidden;
            combobox.Visibility       = Visibility.Hidden;
            cat10_butt.Visibility     = Visibility.Hidden;
            cat20_butt.Visibility     = Visibility.Hidden;
            cat21_butt.Visibility     = Visibility.Hidden;

            //lo que ha de poner en la cajita de búsqueda
            if (combobox.SelectedIndex == 0)
            {
                searchbox.Text = "Package #";
            }
            if (combobox.SelectedIndex == 1)
            {
                searchbox.Text = "Callsign";
            }
            if (combobox.SelectedIndex == 2)
            {
                searchbox.Text = "Track #";
            }

            //mostramos la barra de progreso
            var progress = new Progress <int>(value => progressbar1.Value = value);

            progressbar1.Visibility = Visibility.Visible;

            //que sea un archivo asterix
            ofd.Filter = "AST |*.ast";
            if (ofd.ShowDialog() == true & ofd.SafeFileName != null)
            {
                //preguntamos versión de la cat21
                versionCAT21 vc = new versionCAT21(ofd.SafeFileName);
                vc.ShowDialog();
                int version = vc.GetVersion();
                filenamebox.Visibility = Visibility.Visible;
                filenamebox.Text       = "File: " + ofd.SafeFileName;

                await Task.Run(() =>
                {
                    //leemos fichero
                    this.fichero = ofd.FileName;
                    f            = new Fichero(this.fichero);
                    ((IProgress <int>)progress).Report(10);

                    //leemos los paquetes
                    f.Read(version);
                    ((IProgress <int>)progress).Report(70);

                    //decimos que se ha cargado ya el fichero
                    MessageBox.Show("File Loaded", "AsterixDecoder", MessageBoxButton.OK, MessageBoxImage.Information);
                    ((IProgress <int>)progress).Report(75);

                    //guardamos las tablas y mostramos la que toque (this.cat)
                    this.dataCAT20 = f.getTablaCAT20();
                    this.dataCAT10 = f.getTablaCAT10();
                    this.dataCAT21 = f.getTablaCAT21();
                    ((IProgress <int>)progress).Report(85);

                    //cat que vamos a mostrar por defecto
                    //si el archivo tiene más de una cat se mostrará la más grande (por defecto)
                    if (f.ComprobarCAT10() == true)
                    {
                        this.cat = 10;
                    }
                    if (f.ComprobarCAT20() == true)
                    {
                        this.cat = 20;
                    }
                    if (f.ComprobarCAT21() == true)
                    {
                        this.cat = 21;
                    }
                    ((IProgress <int>)progress).Report(100);
                });

                //enseñamos la tabla
                if (this.cat == 10)
                {
                    cat10_butt.IsChecked = true;
                    this.fillgridwithdata(this.dataCAT10);
                }
                if (this.cat == 20)
                {
                    cat20_butt.IsChecked = true;
                    this.fillgridwithdata(this.dataCAT20);
                }
                if (this.cat == 21)
                {
                    cat21_butt.IsChecked = true;
                    this.fillgridwithdata(this.dataCAT21);
                }

                //enseñamos los botones
                searchbox.Visibility      = Visibility.Visible;
                clearsearchbut.Visibility = Visibility.Visible;
                searchbut.Visibility      = Visibility.Visible;
                combobox.Visibility       = Visibility.Visible;
                cat10_butt.Visibility     = Visibility.Visible;
                cat20_butt.Visibility     = Visibility.Visible;
                cat21_butt.Visibility     = Visibility.Visible;

                //escondemos la barra de progreso
                progressbar1.Visibility = Visibility.Hidden;
            }
        }