我使用此代码从部分
中删除Tapped事件 protected override void OnDisappearing()
{
base.OnDisappearing();
foreach (var section in tableView.Root)
{
foreach (var cell in section)
{
cell.Tapped -= openCategoriesPage;
}
}
}
如果我这样做会是一样的吗?
tableView.Root.RemoveAt(1);
我想确保Tapped事件100%被移除。
答案 0 :(得分:0)
不,它不一样 - 因为tableView.Root.RemoveAt(1)
只会断开表中的部分 - 而不是事件处理程序。
测试此方法的最简单方法是在删除后将部分添加回TableView
。点击一个单元格仍应触发openCategoriesPage
。即。
//get reference to section
var section = tableView.Root.First();
//remove section from tableview
tableView.Root.RemoveAt(1);
//now add section back to tableview
tableView.Root.Add(section);
// taps on cell should still trigger the handler