Плагин Xamarin BLE: ListView не отображает информацию о сканированных устройствах - PullRequest
0 голосов
/ 19 сентября 2019

Я использую BLE Plugin для Xamarin для сканирования устройств.Затем я хочу перечислить Id устройств.Однако мой ListView не отображает идентификатор (просто отображает пустые поля).

Cs:

        IBluetoothLE ble;
        IAdapter adapter;
        ObservableCollection<IDevice> deviceList;
        IDevice device;

        public BltScan()
        {
            InitializeComponent();

            ble = CrossBluetoothLE.Current;
            adapter = CrossBluetoothLE.Current.Adapter;
            deviceList = new ObservableCollection<IDevice>();
            bltlist.ItemsSource = deviceList;

            scan();
        }

        public async void scan()
        {
            try
            {
                deviceList.Clear();
                adapter.DeviceDiscovered += (s, a) =>
                {

                    deviceList.Add(a.Device);
                    // DisplayAlert("Disc", a.Device.Id.ToString(), "OK");
                };

                //We have to test if the device is scanning 
                if (!ble.Adapter.IsScanning)
                {
                    await adapter.StartScanningForDevicesAsync();

                }
            }
            catch (Exception ex)
            {
                DisplayAlert("Notice", ex.Message.ToString(), "Error !");
            }
        }

XAML:

        <ListView x:Name="bltlist">
            <ListView.ItemTemplate>
                 <DataTemplate>
                    <TextCell Text="{Binding Id}" />
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

Я могу сделать предупреждение, когдадобавление устройств в список устройств, и он правильно отображает идентификатор отсканированного устройства.

Более того: я создал класс-обертку, в котором хранится IDevice, а его идентификатор - String, а в ListView идентификатор не отображается.Я даже могу ввести несуществующее поле в Text="{Binding GarbageField}", и он не будет жаловаться, а просто перечислит все устройства без нашего отображения.

Я следовал https://www.youtube.com/watch?v=UMbb5FwGWSw и https://github.com/didourebai/BLEPluginDemo ив комментариях на ютубе видно, что у других была такая же борьба.Но я не смог найти никаких ответов на проблему.

1 Ответ

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

В случае, если вы не получили его на работу.Вы также можете создать коллекцию строк и просто добавлять и удалять из этого списка при обнаружении нового устройства.Когда пользователь нажимает на устройство, получает идентификатор в этом списке и получает тот же идентификатор из списка устройств

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