это моя ситуация.
У меня есть приложение, написанное на Xamarin, которое поддерживает Droid и iOS.Каждый из этих проектов требует независимой от платформы Bluetooth API.Итак, я создал интерфейс, который я использую с DependencyService.Поле, которое мне нужно, это список устройств Bluetooth ... это достаточно просто, если я разрабатываю для одной платформы.Но в этом случае моя реализация Bluetooth «обнаруживает» устройства в своем собственном потоке, поэтому я не обязательно могу вернуть имена String []. Мое решение было следующее: я создаю класс, и внутри класса есть String [] и поскольку этот класс является «справочным», я предположил, что позже добавлю его в список кода, изменения будут отражены в моем DependencyService ... но, к сожалению, нет, это не так ..... Вот некоторый коддля ситуации.
Это определение моего класса, в котором я «храню» свой массив предметов.
namespace ThoughtCastRewrite.BluetoothX
{
public class BluetoothItems
{
public string[] ListBTItems = new string[10];
public BluetoothItems()
{
ListBTItems[2] = "TEST";
ListBTItems[6] = "WtF?";
}
public void Set(string stringToAdd)
{
ListBTItems[4] = stringToAdd;
}
}
}
Этот фрагмент кода находится в кроссплатформенном проекте
BluetoothItems bluetoothItemList = DependencyService.Get<ISlateBluetoothItems>().IBluetoothTest;
listView.ItemsSource = bluetoothItemList.ListBTItems;
Теперь вот код Droid:
BluetoothItems bluetoothItems = new BluetoothItems();
public BluetoothItems IBluetoothTest { get => bluetoothItems; }
Хорошо, это может показаться очевидным, но TEST и WtF?добавлены в мой список.Но в моей MainActivity (снова в части Droid) после загрузки всего представления я звоню
bluetoothItems.Set("TEST");
, и пункт «ТЕСТ» никогда не добавляется в мой список!
Мне ясно, что я пытаюсь сделать?
Любая помощь приветствуется.