2016-07-08 22 views
2

在Xamarin形式我有下面的類(沒有內容):「無法訪問已釋放的對象」在Xamarin表單自定義渲染

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

一個ContentPage稱爲TracksPage.cs,在導航堆棧,只包含TracksBoxView,一個標籤和一個開關。 TracksPage生成一些公共數據(需要幾秒鐘),然後設置一個由iOS自定義渲染器TracksBoxViewRenderer.cs輪詢的標誌。自定義渲染器然後檢索並顯示信息。

當用戶導航到TracksPage(推送)時,信息顯示正確。用戶然後點擊「後退」按鈕,並在幾秒鐘後再次導航到TracksPage。這是重複的。關於第二或第三次嘗試時,會出現以下異常:

System.ObjectDisposedException: Cannot access a disposed object. 

這在下面一行自定義呈現發生早:

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

如果用戶推遲嘗試在30秒以上,它工作多數時間。我想象垃圾收集正在發生。

在論壇中沒有找到任何相似的內容。

有什麼我可以做的,可能是更好的方法或解決方法?這聽起來像一個Xamarin表格錯誤?

+0

我在某處丟失了一些上下文,你是說'this'是源處理對象錯誤嗎?這是回收站內的TracksBoxView嗎? – SushiHangover

+0

是@SushiHangover,引用'this'時發生異常。理解是'這'代表視圖,我沒有實現任何類型的回收站,我在視圖中有100多個標籤(它是地圖上的軌道) – BillF

+0

當我們返回到自定義渲染器的視圖時,我們發現它是與之前的視圖非常相似,所以我預計會有一個全新的視圖,所以我現在在添加100個標籤之前刪除了視圖中的所有標籤,但如果標籤存在問題,則不會有幫助 – BillF

回答

1

我的一個基本錯誤。標籤不是字段。 :(

相關問題