删除TableSection是否也会删除所有Tapped事件链接?

时间:2017-08-22 14:40:48

标签: xamarin xamarin.forms

我使用此代码从部分

中删除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%被移除。

1 个答案:

答案 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