我有一个可以关闭和打开的蓝牙设备列表。当它们出现时,它们出现在tableview中并在关闭时被删除。我的蓝牙管理器对象包含设备列表,每当更新列表时,都会触发通知以更新tableview。添加似乎不是一个问题,那些立即出现,但当我从列表中删除一些东西时,它似乎没有从tableview中删除。
此预期行为或更新tableview是否不适用于此方法?
private void DeviceCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
updateDevices();
}
private void updateDevices()
{
Console.WriteLine("Update in iOS");
deviceTable.Source = new DeviceTableSource(bleHandler.getModelList().ToList());
deviceTable.ReloadData();
}
我知道重新加载不是最佳的,因为它重绘了整个表,但列表仅限于6个设备,不应经常更改。
答案 0 :(得分:0)
这是我如何能够正确删除它。它归结为一个线程问题。
InvokeOnMainThread(() => {
deviceTable.ReloadData();
});