• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wartość klikanego elementu w xamarin

VPS Starter Arubacloud
0 głosów
194 wizyt
pytanie zadane 1 grudnia 2021 w C# przez kuba412 Początkujący (310 p.)
Witam, robię aplikację przy użyciu xamarin.forms. Jest w niej strona z listą dat i druga, która wyświetla się po kliknięciu w daną datę. Druga strona zawiera listę obiektów, z którego każdy również posiada datę równą jednej z tych na pierwszej stronie. W jaki sposób mogę wyciągnąć klikaną datę z pierwszej strony, tak aby na drugiej wyświetlić elementy tylko o takiej samej dacie?

Z góry dziękuję za pomoc
1
komentarz 3 grudnia 2021 przez DarthMazut Bywalec (2,990 p.)
Nie jestem pewny, czy dobrze zrozumiałem, Twój problem, ale kiedy nawigujesz na drugą stronę możesz przesłać parametr, który będzie dostępny na stronie docelowej. W zależności czy programujesz strukturalnie czy obiektowo przesyłasz odpowiednio ID obiektu i póżniej wyciągasz ten obiekt z jakiegoś serwisu za pomocą tego ID, bądź jeśli robisz OOP to możesz przesłać cały obiekt z którym chcesz pracować.
komentarz 3 grudnia 2021 przez kuba412 Początkujący (310 p.)

Niezrozumiale się wyraziłem. Mam takie 2 funkcje:

        public void OnGetButtonClicked(object sender, EventArgs args)
        {
 IEnumerable<Workout> workout = App.WorkoutRepo.GetAllWorkouts();
 var date = workout.GroupBy(x => x.dateTime.Date).Select(p => p.First()).ToList();
            dateList.ItemsSource = date;
        }
        public void ItemClicked(object sender, ItemTappedEventArgs e)
        {
            
            List<Workout> workout = App.WorkoutRepo.GetAllWorkouts();
            var work = workout.Where(x => x == sender).FirstOrDefault();
            Navigation.PushAsync(new WorkoutDetailView(work));
           
        }

Pierwsza odpowiada za wyświetlanie listy, druga za odpalenie nowej strony. Problem jest taki to objekt który wysyłam do klasy WorkoutDetailView zawsze jest równy null. Podejrzewam że to przez porównanie do sendera, ale nie mam pojęcia jak to zrobić, aby wysłał się klikany obiekt.

komentarz 3 grudnia 2021 przez DarthMazut Bywalec (2,990 p.)

No tak... klikany obiekt to nie to samo co wysyłasz do `ItemsSource`, Twoje obiekty są wrapowane w obiekty UI, spróbuj:

x => x == (sender as BindableObject).BindingContext

 

komentarz 4 grudnia 2021 przez kuba412 Początkujący (310 p.)
Niestety nic to nie dało, ale i tak dziękuję za pomoc
komentarz 4 grudnia 2021 przez DarthMazut Bywalec (2,990 p.)

możesz porównać jeszcze z `e.Item`; tj.

x => x == e.Item

ostatecznie

x => x == (e.Item as BindableObject).BindingContext

nic innego mi nie przychodzi do głowy.

Jeśli to nic nie da, musisz zapiąć się debuggerem na ItemClicked i podglądnąć czym jest `sender` i `e.Item`, na pewno będą musiałby mieć referencję do obiektu, który reprezentują.

komentarz 4 grudnia 2021 przez kuba412 Początkujący (310 p.)
To też nie działa, spróbuję debuggerem coś ustalić, jeszcze raz dzięki za pomoc.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 206 wizyt
pytanie zadane 18 marca 2022 w C# przez DXC Użytkownik (500 p.)
0 głosów
1 odpowiedź 112 wizyt
pytanie zadane 21 stycznia 2022 w C# przez patryk241 Użytkownik (700 p.)
–1 głos
0 odpowiedzi 415 wizyt
pytanie zadane 26 września 2021 w C# przez Joh Początkujący (300 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...