//Evento per cambiare i dati selezionati dalla ListBox private void Lst_VediDati1_SelectionChanged_1(object sender, SelectionChangedEventArgs e) { Covid_19 dati = (Covid_19)Lst_VediDati1.SelectedItem; //effettuo il casting sul elemento selezionato if (dati != null) { Txt_Regione.Text = dati.NomeRegione.ToString(); //faccio visualizzare il dato selezionato in una textbox Txt_Positivi.Text = dati.CasiTotali.ToString(); //faccio visualizzare il totale dei contagiato della regione selezionata Txt_Provincia.Text = dati.NomeProvincia.ToString(); //faccio visualizzare il nome della regione in una text box } }
//Bottone per aggiornare i dati private void Btn_AggiornaDati_Click(object sender, RoutedEventArgs e) { Covid_19 dati = (Covid_19)Lst_VediDati1.SelectedItem; //effettuo il casting sul elemento selezionato int valore = Convert.ToInt32(Txt_Positivi.Text); //aggiorniamo il nuovo valore if (dati.CasiTotali != valore) //controlliamo se il valore modificato è diverso dall'originale { dati.CasiTotali = valore; //assegniamo il nuovo valore MessageBox.Show("Operazione eseguita con successo", "OK"); } Task.Factory.StartNew(() => Scrivi()); //aggiunta nuovo valore al file xml }
//Metodo estratto per caricare idati nella ListBox private void CaricaDatiCovid() { string path = @"DatiCovid.xml"; XDocument xmlDoc = XDocument.Load(path); XElement xmlRoot = xmlDoc.Element("root"); var xmlRow = xmlRoot.Elements("row"); //Rallento il caricamneto usando Thread.Sleep() Thread.Sleep(1000); //Mi scorro i valori della lista del file DatiCovid-19_Lucan foreach (var item in xmlRow) { //Cerco i valori nei diversi tag XElement xmlData = item.Element("data"); XElement xmlStato = item.Element("stato"); XElement xmlCodiceRegione = item.Element("codice_regione"); XElement xmlNomeRegione = item.Element("denominazione_regione"); XElement xmlCodiceProvincia = item.Element("codice_provincia"); XElement xmlNomeProvincia = item.Element("denominazione_provincia"); XElement xmlSiglaProvincia = item.Element("sigla_provincia"); XElement xmlLatitudine = item.Element("lat"); XElement xmlLongitudine = item.Element("long"); XElement xmlCasiTotali = item.Element("totale_casi"); XElement xmlNoteIt = item.Element("note_it"); XElement xmlNoteEn = item.Element("note_en"); //Creo l'istanza della classe Covid-19 ----> parte relativa all oggetto Covid-19 Covid_19 datiCovid = new Covid_19(); datiCovid.Data = xmlData.Value; datiCovid.Stato = xmlStato.Value; datiCovid.CodiceRegione = Convert.ToInt32(xmlCodiceRegione.Value); datiCovid.NomeRegione = xmlNomeRegione.Value; datiCovid.CodiceProvincia = xmlCodiceProvincia.Value; datiCovid.NomeProvincia = xmlNomeProvincia.Value; datiCovid.SiglaProvincia = xmlSiglaProvincia.Value; datiCovid.Latitudine = Convert.ToDouble(xmlLatitudine.Value); datiCovid.Longitudine = Convert.ToDouble(xmlLongitudine.Value); datiCovid.CasiTotali = Convert.ToInt32(xmlCasiTotali.Value); datiCovid.NoteIt = xmlNoteIt.Value; datiCovid.NoteEn = xmlNoteEn.Value; //Faccio visualizzare le proprietà di Alunno nella ListBox Dispatcher.Invoke(() => Lst_VediDati1.Items.Add(datiCovid)); //Controlliamo se il CancellationToken è stato richiesto if (cancToken.Token.IsCancellationRequested) { //Cosi facendo lasciamo al metodo carica dati di eseguire l'ultima istruzione che sta eseguendo break; } //Rallento il caricamento usando Thread.Sleep() per visualizzare un alunno alla volta Thread.Sleep(1500); } //Riabillito il Bottone Aggiorna e disattivo il bottone per l interruzione del caricamento Dispatcher.Invoke(() => { Btn_CaricaDati.IsEnabled = true; Btn_Interrompi.IsEnabled = false; //Mettiamo a null il CancellationToken cancToken = null; }); }