2017-08-22 8 views
0

私はちょうどこのなかった場合、それは同じだろう、私はセクションTableSectionを削除すると、タップされたすべてのイベントリンクも削除されますか?

protected override void OnDisappearing() 
    { 
     base.OnDisappearing(); 
     foreach (var section in tableView.Root) 
     { 
      foreach (var cell in section) 
      { 
       cell.Tapped -= openCategoriesPage; 
      } 
     } 
    } 

からタップイベントを削除するために使用し、このコードを持っている:

tableView.Root.RemoveAt(1); 

を私はタップすることを確認したいがイベントは100%削除されます。

答えて

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 
関連する問題