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);
}
}