Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用空实体填充的Listview_C#_Linq_Xamarin_Xamarin.forms - Fatal编程技术网

C# 用空实体填充的Listview

C# 用空实体填充的Listview,c#,linq,xamarin,xamarin.forms,C#,Linq,Xamarin,Xamarin.forms,因此,我有一个IDevice的ObservableCollection,它在外围包含一组蓝牙设备 public partial class MainPage : ContentPage { public ObservableCollection<IDevice> Devices { get; set; } public MainPage() { Devices = new ObservableCollection<IDevice>

因此,我有一个
IDevice
ObservableCollection
,它在外围包含一组蓝牙设备

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();
    }
}   
public分部类主页面:ContentPage
{
公共可观察收集设备{get;set;}
公共主页()
{
设备=新的ObservableCollection();
填充=新厚度(0,20,0,0);
var listView=new listView();
listView.ItemsSource=设备;
内容=列表视图;
Refreshcmd();
}
public void Refreshcmd()
{
var适配器=交叉螺纹牙.Current.adapter;
adapter.DeviceDiscovered+=(s,a)=>Devices.Add(a.Device);
adapter.StartScanningForDevicesAsync();
}
}   
我的问题是,除了实际的蓝牙设备之外,listview中还填充了空的实体,这导致了一个非常长的列表,其中每5行左右都有实际的设备

我怀疑在向
设备添加数据时出错。我相信一个解决方案是用一个条件来改变lambda表达式,这样设备空荡荡的。另外,也可以反过来,告诉listview它不应该显示“空”数据


我只是不知道该怎么做

很酷。非常感谢。我可能需要进一步研究这些lambda表达式!
adapter.DeviceDiscovered += (s, a) => 
{
  // test here for any conditions you want to exclude
  if (a.Device != null) {
    Devices.Add(a.Device);
  }
}