此自定义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();
}
}
}