Получение данных карусели обратно в объект - PullRequest
0 голосов
/ 14 сентября 2018

Я создаю динамическое представление карусели в моем приложении Xamarin, и пока оно работает просто отлично, но ...

Моя карусель содержит студентов, и каждая страница карусели является ссылкой на страницу информации о студентах.Я хочу иметь возможность установить объект с текущим выбранным учеником, чтобы я мог взять его на всех страницах учеников (надеюсь, это имеет смысл: - /).

Мой сценарий выглядит следующим образом.

StudentModel:

public class StudentData
{
    public string id { get; set; }
    public string name { get; set; }
    public string course { get; set; }
    public string schoolclass { get; set; }
    public string profileImage { get; set; }
}

CarouselPart:

ObservableCollection<StudentData> collection = new ObservableCollection<StudentData>();

collection.Add(new StudentData { name = "Soren Hanson", schoolclass = "4. grade", course = "Math" });
collection.Add(new StudentData { name = "Michael Trane", schoolclass = "7. grade", course = "English" });
collection.Add(new StudentData { name = "Tammy Jump", schoolclass = "1. grade", course = "English" });

DataTemplate template = new DataTemplate(() =>
{
    var imageBtn = new Button();
    imageBtn.Image = "Images/default.png";

    imageBtn.Clicked += delegate {

        // ADDING THE CURRENT STUDENT TO MY CURRSTUDENT OBJECT //
        //App.currStudent = collection.......

        var menteeOptions = new MenteeOptions();
        imageBtn.Navigation.PushAsync(menteeOptions);

    }
}

carousel.ItemTemplate = template;
carousel.PositionSelected += pageChanged;
carousel.ItemsSource = collection;

Надеемся на помощь в этом и заранее спасибо:-)

1 Ответ

0 голосов
/ 20 сентября 2018

Поначалу ваш вопрос был довольно запутанным, но я отвечу на него из того, что, как я понял, вы хотите сохранить выбранный объект студента при себе на своих страницах:

Так что вы можете использовать для него SQLite, который может здесь

Или вы можете просто сохранить его как статический системный объект в вашем app.xaml.cs и использовать его

Что-то вроде этого

App.Xaml.cs

 public static object YourDataHolder {get; set;}

В выбранном вами событии:

imageBtn.Clicked += delegate {

    // ADDING THE CURRENT STUDENT TO MY CURRSTUDENT OBJECT //
    App.YourDataHolder = _yourCollection;

    var menteeOptions = new MenteeOptions();
    imageBtn.Navigation.PushAsync(menteeOptions);

}

Используйте его примерно так:

fooObject=App.YourDataHolder as FooType;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...