/// <summary>
        /// Called when [element changed].
        /// </summary>
        /// <param name="e">The e.</param>
        protected override void OnElementChanged(ElementChangedEventArgs <EditableListView <T> > e)
        {
            base.OnElementChanged(e);

            Unbind(e.OldElement);
            if (e.NewElement != null)
            {
                if (Control == null)
                {
                    _tableView = new UITableView(new CGRect(0, 0, 1, 1), UITableViewStyle.Plain);
                    _editableListViewSource = new EditableListViewSource(this);
                    _tableView.Source       = _editableListViewSource;

                    _tableView.SetEditing(true, true);
                    _tableView.TableFooterView = new UIView();
                    SetNativeControl(_tableView);
                    if (e.NewElement.CellHeight > 0)
                    {
                        RowHeight = e.NewElement.CellHeight;
                    }
                }

                Bind(e.NewElement);
            }
        }
 protected override void Dispose(bool disposing)
 {
     if (disposing && !disposed)
     {
         Unbind(Element);
         _editableListViewSource.Dispose();
         _editableListViewSource = null;
         disposed = true;
     }
     base.Dispose(disposing);
 }