代码之家  ›  专栏  ›  技术社区  ›  Jeppe Christensen

用空实体填充的Listview

  •  0
  • Jeppe Christensen  · 技术社区  · 6 年前

    所以我有一个 ObservableCollection 属于 IDevice 它在外围包含一个蓝牙设备集合。

    public partial class MainPage : ContentPage
    {
    
        public ObservableCollection<IDevice> Devices { get; set; }
    
        public MainPage()
        {
            Devices = new ObservableCollection<IDevice>();
            Padding = new Thickness(0, 20, 0, 0);
            var listView = new ListView();
            listView.ItemsSource = Devices;
            Content = listView;
            Refreshcmd();
        }
    
        public void Refreshcmd()
        {
            var adapter = CrossBluetoothLE.Current.Adapter;
            adapter.DeviceDiscovered += (s, a) => Devices.Add(a.Device);
            adapter.StartScanningForDevicesAsync();
        }
    }   
    

    我的问题是,除了实际的蓝牙设备外,listview还填充了空的实体,这会导致每隔5行左右就有一个非常长的实际设备列表。

    我怀疑在将数据添加到 Devices

    我只是不确定该怎么做。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jason    6 年前
    adapter.DeviceDiscovered += (s, a) => 
    {
      // test here for any conditions you want to exclude
      if (a.Device != null) {
        Devices.Add(a.Device);
      }
    }