Wpis z mikrobloga

@qubeq: @Ingvarr100th:
eh, siadłem do tego teraz i nie mogę sobie nadal z tym poradzić. Jak sprawdziłem, to te linijki kodu pobierają cały obiekt, w który klikę.
Napisałem taką linijkę
GetContacts().ToList().Add(new Grupa() { Name = "a", Status = "b" });

i niestety też nie działa, błąd jest gdzieś w tym GetContacts().ToList()

bo jak wstawie to w tej metodzie i dam nazwę listy to działa.
  • Odpowiedz
@mdlejtecole: widzę, że kompletnie nie rozumiesz co robisz.
1. GetContacts tworzy za każdym wywołaniem nowy obiekt ObservableCollection (zobacz sobie w dokumentacji C# na stronach MSDN co robi słówko new i zrozum to porządnie). Więc zmienna item będzie mieć za każdym razem nowy obiekt a nie poprzedni.
2. ToList() tworzy nowy obiekt który jest konwersją innego obiektu dziedziczącego po IEnumerable wraz z zawartością. Jak zrobisz sobie ToList() to operacje po nim odnoszą
  • Odpowiedz
@mdlejtecole: Jeżeli chcesz aby ObservableCollection nie tworzony za każdym razem po wywołaniu GetContacts to przenieś ten place wraz z jego inicjalizacją w obręb klasy a nie w funkcji, by był dostępny wewnątrz tej klasy, a w GetContacts zostawiasz tylko to co pozostało czyli od: var result = Place.OrderBy(i=>i.Name);
W Cosiek_Clicked piszesz to:
Place.Remove(...) albo Place.Add(...) i po sprawie
  • Odpowiedz
@mdlejtecole: a wiesz co robi var w ogóle? Też przeczytaj co robi var... Bo to co napisałeś spowodowało, że mi teraz ręce tak opadły i przeleciały przez 4 piętra aż do garażu.
Ogólnie praktyka używania var jest wg. mnie zła a powinno się pisać pełne nazwy typów i tworzy wśród uczących się takie patologie jakie mi piszesz teraz... No chyba że masz jakiegoś generycznego wielgachnego cudaka...
A napisz to i zobacz
  • Odpowiedz