private void LoadPlayer(Pilkarz pilkarz) { textBoxWEPImie.Text = pilkarz.Imie; textBoxWEPNazwisko.Text = pilkarz.Nazwisko; sliderWaga.Value = pilkarz.Waga; sliderWiek.Value = pilkarz.Wiek; buttonEdytuj.IsEnabled = true; buttonUsun.IsEnabled = true; textBoxWEPImie.SetFocus(); }
private void buttonUsun_Click(object sender, RoutedEventArgs e) { var biezacyPilkarz = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value); var dialog = MessageBox.Show($"{biezacyPilkarz.ToString()} zaostanie usunięty {Environment.NewLine} Jesteś tego pewien?", "Uwaga", MessageBoxButton.YesNo); if (dialog == MessageBoxResult.Yes) { listBoxPilkarze.Items.RemoveAt(listBoxPilkarze.SelectedIndex); } Clear(); listBoxPilkarze.SelectedIndex = -1; }
private void buttonEdytuj_Click(object sender, RoutedEventArgs e) { // operator logiczny & a nie podwójny operator warunkowy && //sprawdź dlaczego /* * Odpowiedź: * Użycie operatora logicznego & pozwala na to, żeby i jedna i druga strona * wyrażenia logicznego zostały sprawdzone (przykładowo: jeśli po obu stronach wywoływane są metody * to w przypadku gdyby lewa strona zwróciła fałsz to sprawdzenie prawej strony (a co za tym idzie wywołanie * metody z prawej strony) i tak się odbędzie). * Gdybyśmy natomiast użyli operatora && to w chwili gdy lewa strona zwróci fałsz sprawdzanie warunku kończy się, * a więc nie dochodzi wogóle do sprawdzenia wyniku strony prawej. */ if (IsNotEmpty(textBoxWEPImie) & IsNotEmpty(textBoxWEPNazwisko)) { var biezacyPilkarz = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value); var czyJuzJestNaLiscie = false; foreach (var p in listBoxPilkarze.Items) { var pilkarz = p as Pilkarz; if (pilkarz.isTheSame(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ę Pilkarz edytowanyPilkarz = listBoxPilkarze.Items[listBoxPilkarze.SelectedIndex] as Pilkarz; edytowanyPilkarz.zmianaPilkarz(biezacyPilkarz); listBoxPilkarze.Items.Refresh(); } Clear(); listBoxPilkarze.SelectedIndex = -1; } else { MessageBox.Show($"{biezacyPilkarz.ToString()} już jest na liście.", "Uwaga"); } } }
//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; } Archiwizacja.ZapisPilkarzyDoPliku(plikArchiwizacji, pilkarze); } }
private void buttonUsun_Click(object sender, RoutedEventArgs e) { //zaimplementuj mechanizm usuwania zaznaczonej pozycji na liście //zapytaj czy napewno usunąć var biezacyPilkarz = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value); var dialogResult = MessageBox.Show($"Czy na pewno chcesz usunąć dane {Environment.NewLine} {listBoxPilkarze.SelectedItem}?", "Usuwanie", MessageBoxButton.YesNo); if (dialogResult == MessageBoxResult.Yes) { listBoxPilkarze.Items.Remove(listBoxPilkarze.Items[listBoxPilkarze.SelectedIndex]); } Clear(); listBoxPilkarze.SelectedIndex = -1; }
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(), (uint)sliderWiek.Value, (uint)sliderWaga.Value); var czyJuzJestNaLiscie = false; foreach (var p in listBoxPilkarze.Items) { var pilkarz = p as Pilkarz; if (pilkarz.isTheSame(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; Pilkarz pilkarz = (Pilkarz)listBoxPilkarze.SelectedItem; pilkarz.Imie = biezacyPilkarz.Imie; pilkarz.Nazwisko = biezacyPilkarz.Nazwisko; pilkarz.Waga = biezacyPilkarz.Waga; pilkarz.Wiek = biezacyPilkarz.Wiek; listBoxPilkarze.Items.Refresh(); } Clear(); listBoxPilkarze.SelectedIndex = -1; } else { MessageBox.Show($"{biezacyPilkarz.ToString()} już jest na liście.", "Uwaga"); } } }
public static Pilkarz[] CzytajPilkarzyZPliku(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); }
//sprawdza czy obiekt ma ten sam stan co bieżąca instancja public bool isTheSame(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); }
private void buttonEdytuj_Click(object sender, RoutedEventArgs e) { // operator logiczny & a nie podwójny operator warunkowy && // Przy zastosowaniu pojedyńczego operatora oba warunki zostaną sprawdzone. tutaj w kodzie wywoływane są funkcję, zatem by obie się wywołały używamy pojedyńczego & //sprawdź dlaczego if (IsNotEmpty(textBoxWEPImie) & IsNotEmpty(textBoxWEPNazwisko)) { var biezacyPilkarz = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value); var czyJuzJestNaLiscie = false; Pilkarz selectedPilkarz; foreach (var p in listBoxPilkarze.Items) { var pilkarz = p as Pilkarz; if (pilkarz.isTheSame(biezacyPilkarz)) { selectedPilkarz = pilkarz; 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ę Pilkarz nowaReferencja = listBoxPilkarze.Items[listBoxPilkarze.SelectedIndex] as Pilkarz; nowaReferencja.footBallerReplacer(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value); listBoxPilkarze.Items.Refresh(); } Clear(); listBoxPilkarze.SelectedIndex = -1; } else { MessageBox.Show($"{biezacyPilkarz.ToString()} już jest na liście.", "Uwaga"); } } }
private void Reload() { 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; } } listBoxPilkarze.Items.Clear(); if (pilkarze != null) { foreach (var p in pilkarze) { listBoxPilkarze.Items.Add(p); } } }
private void buttonEdytuj_Click(object sender, RoutedEventArgs e) { // operator logiczny & a nie podwójny operator warunkowy && //sprawdź dlaczego //dzięki użyciu pojedynczego operatora "&" mamy pewność, że obydwa warunki zostaną sprawdzone //nawet jeżeli pierwszy warunek bedzie równy "False". if (IsNotEmpty(textBoxWEPImie) & IsNotEmpty(textBoxWEPNazwisko)) { var biezacyPilkarz = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value); var czyJuzJestNaLiscie = false; foreach (var p in listBoxPilkarze.Items) { var pilkarz = p as Pilkarz; if (pilkarz.isTheSame(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) { ((Pilkarz)listBoxPilkarze.SelectedItem).ChangeData(biezacyPilkarz); Reload(); } Clear(); listBoxPilkarze.SelectedIndex = -1; } else { MessageBox.Show($"{biezacyPilkarz.ToString()} już jest na liście.", "Uwaga"); } } }