'无法访问已处置的对象'在Xamarin表单自定义渲染器

时间:2016-07-08 04:44:42

标签: xamarin xamarin.ios xamarin.forms

在Xamarin表格中,我有以下课程(没有内容):

public class TracksBoxView : BoxView
// Uses custom renderer TracksBoxViewRenderer.cs
{
}

导航堆栈上名为TracksPage.cs的ContentPage仅包含TracksBoxView,Label和Switch。 TracksPage生成一些公共数据(需要几秒钟),然后设置由iOS自定义渲染器TracksBoxViewRenderer.cs轮询的标志。然后,自定义渲染器将检索并显示信息。

当用户导航到TracksPage(推送)时,信息会正确显示。然后用户点击'返回'按钮,几秒钟后再次导航到TracksPage。这是重复的。在第二次或第三次尝试时,会发生以下异常:

System.ObjectDisposedException: Cannot access a disposed object.

这发生在自定义渲染器的早期,位于以下行:

double totalWidth = (double)this.Bounds.Width;

如果用户在尝试之间延迟30秒或更长时间,则大多数时间都有效。我想象垃圾收集正在发生。

在论坛中没有发现任何相似内容。

我能做些什么,也许更好的方法或解决方法?这听起来像是Xamarin Forms的错误吗?

1 个答案:

答案 0 :(得分:1)

我的一个基本错误。标签不是字段。 :(