//nadpisujemy plik archiwum przy zamknięciu okna private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { int n = listBoxPilkarze.Items.Count; Pilkarz[] pilkarze = null; if (n > 0) { pilkarze = new Pilkarz[n]; int index = 0; foreach (var o in listBoxPilkarze.Items) { pilkarze[index++] = o as Pilkarz; } ZapisOdczytDoPliku.ZapisPilkarzyDoPliku(plikArchiwizacji, pilkarze); } }
private void buttonEdytuj_Click(object sender, RoutedEventArgs e) { // operator logiczny & a nie podwójny operator warunkowy && //sprawdź dlaczego if (IsNotEmpty(textBoxWEPImie) & IsNotEmpty(textBoxWEPNazwisko)) { var biezacyPilkarz = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (ushort)sliderWiek.Value, (ushort)sliderWaga.Value); var czyJuzJestNaLiscie = false; foreach (var p in listBoxPilkarze.Items) { var pilkarz = p as Pilkarz; if (pilkarz.CzyJestTenSam(biezacyPilkarz)) { czyJuzJestNaLiscie = true; break; } } if (!czyJuzJestNaLiscie) { var dialogResult = MessageBox.Show($"Czy na pewno chcesz zmienić dane {Environment.NewLine} {listBoxPilkarze.SelectedItem}?", "Edycja", MessageBoxButton.YesNo); if (dialogResult == MessageBoxResult.Yes) { //zamiana refernecji do obiektu piłkarza edytowanego //zmień implementację tak aby zmieniać stan obiektu a nie podmieniać referencję //listBoxPilkarze.Items[listBoxPilkarze.SelectedIndex] = biezacyPilkarz; var zawodnik = listBoxPilkarze.SelectedItem as Pilkarz; zawodnik.Imie = textBoxWEPImie.Text.Trim(); zawodnik.Nazwisko = textBoxWEPNazwisko.Text.Trim(); zawodnik.Waga = (ushort)sliderWaga.Value; zawodnik.Wiek = (ushort)sliderWiek.Value; listBoxPilkarze.Items.Refresh(); } Clear(); listBoxPilkarze.SelectedIndex = -1; } else { MessageBox.Show($"{biezacyPilkarz.ToString()} już jest na liście.", "Uwaga"); } } }
public static Pilkarz[] OdczytPilkarzyZPliku(string plik) { Pilkarz[] pilkarze = null; if (File.Exists(plik)) { var sPilkarze = File.ReadAllLines(plik); var n = sPilkarze.Length; if (n > 0) { pilkarze = new Pilkarz[n]; for (int i = 0; i < n; i++) { pilkarze[i] = Pilkarz.CreateFromString(sPilkarze[i]); } return(pilkarze); } } return(pilkarze); }
//Sprawdzenie czy obiekt ma ten sam stan co biezaca instancja public bool CzyJestTenSam(Pilkarz pilkarz) { if (pilkarz.Nazwisko != Nazwisko) { return(false); } if (pilkarz.Imie != Imie) { return(false); } if (pilkarz.Wiek != Wiek) { return(false); } if (pilkarz.Waga != Waga) { return(false); } return(true); }