Как отправить список объектов через MessagingCenter в C#?

#c# #xamarin.forms #xamarin.android #messagingcenter

Вопрос:

Я пытаюсь отправить список BarData объектов в свой FavoritesPage.xaml.cs центр обмена сообщениями. Я пытался

MessagingCenter.Send<BarData>(_favoriteBarsList, "FaveBars");

и это выдает мне ошибку, сообщающую, что я не могу преобразовать отправителя из списка в объект. Затем я попытался использовать

MessagingCenter.Send<List<BarData>>(_favoriteBarsList, "FaveBars");

и visual studio кричит на меня, ЛОЛ! Я попытался поискать в Интернете, как отправить список объектов через MessagingCenter, но ничего не нашел. Может кто-нибудь, пожалуйста, помочь?

Ответ №1:

Центр обмена сообщениями.Способ отправки

Отправляет именованное сообщение с указанными аргументами

Параметры

  • отправитель TSender
    • Экземпляр, отправляющий сообщение. Как правило, это указывается с помощью ключевого слова this, используемого в объекте отправки.
  • Сообщение String
    • Сообщение, которое будет отправлено объектам, прослушивающим сообщение от экземпляров типа TSender.
  • аргументы TArgs
    • Аргументы, которые будут переданы в обратный вызов слушателя.

Пример

 MessagingCenter.Send<MainPage,List<BarData>>(
    this, // the context you are on 
    "FaveBars", // the named message
    _favoriteBarsList); // the argument
 

Где MainPage тип this , и List<BarData> является типом аргумента

Комментарии:

1. Спасибо, что ответили на мой вопрос. Стал бы я по-прежнему помещать MainPage , даже если я не хочу, чтобы список объектов отправлялся на главную страницу?

2. @MirandaHall не отправляет его на главную страницу, это страница или контекст, на котором вы находитесь, поэтому замените главную страницу на » где бы вы ни находились

3. Как бы вы настроили функцию подписки?