如何在c#Xamarin中實現iOS用於表視圖的「委託」或「數據源」模式的等價物?例如,我想有視圖類,如:如何在c#Xamarin中實現ios委託/數據源模式?
public class MyDataView : UIView
{
public interface ISource
{
int NumberOfPages();
}
public ISource DataSource { get; set; }
}
但問題是,當我把這個從MyViewController下面類似的代碼:
this.myDataView.DataSource=new ViewSource(this)
public class ViewSource : MyDataView.ISource
{
private readonly MyViewController parentController;
public ViewSource(MyViewController parentController)
{
this.parentController=parentController;
}
}
然後MyViewController永遠不能被垃圾收集,因爲創建了循環參考。
這似乎是一個常見的要求,所以人們使用什麼設計?
我應該讓Source成爲一個弱引用嗎?這是如何在C#中完成的?因爲呼叫者可能不知道它是一個弱引用,所以這不危險嗎?
你的解決方案是什麼? – testing