为什么在导航弹出和另一个导航添加后,TableViewRenderer控件属性更改为null

时间:2019-03-05 05:13:53

标签: xamarin xamarin.forms xamarin.ios

此自定义TableViewRenderer中的Control属性在将其所在的视图一次推入导航堆栈,然后弹出并再次推入之后,设置为null。 PerformScrolling()第一次工作,但此后没有后续时间,因为将相同实例推回到导航堆栈后,Control为null。为什么Control属性为null,但TableView在我的应用程序中可见?这是Xamarin的错误吗?

[assembly: ExportRenderer(typeof(PropertyTableView),   typeof(iOSTableViewRenderer))]
namespace Project.iOS
{
public class iOSTableViewRenderer : TableViewRenderer
{
  ...

  void PerformScrolling()   
  {
       if (Control != null) //Control is null on second pushasync
       {
          try
          {
             if (SelectedRow != null && SelectedSection != null)
             {
                newcontentoffset = getRowOffset(SelectedRow, SelectedSection);
                Control.SetContentOffset(new CoreGraphics.CGPoint(0, newcontentoffset),  true);
                Control.LayoutIfNeeded();
             }

         }
        catch (Exception ex)
        {
         throw ex;
        }

  }

  }
  }

...    

  void OnPropertyChanged(object c, System.ComponentModel.PropertyChangedEventArgs e)
{

    if (e.PropertyName == "Scroll")
    {
        PerformScrolling();
    }

}
}

0 个答案:

没有答案