正如前面所詳述的一些MvvmCross視頻(http://www.youtube.com/watch?v=cYu_9rcAJU4&feature=youtu.be&t=33m41s)弱引用與行動<T>
我想刪除我的意見從我的視圖模型強引用。
已實施WeakSubscribe(),其中的PropertyChanged + =已使用我現在所遇到的一些情形,我用行動來讓視圖來觀察。我認爲這會導致再次潛在的內存泄漏,因此試圖erradicate。
但是 - WeakReference的工作掛鉤到INotifyPropertyChanged的源的基礎上:
所以我應該重構我的代碼溝的行動,並要通過的PropertyChanged燒成,能夠通知視圖通過弱參考?
這裏只是參考一些示例代碼 - 當前強烈參考架構。
視圖模型
public event Action Loaded;
public HomeViewModel()
{
FeaturedProductCategoryViewModel = new FeaturedProductsViewModel();
FeaturedProductCategoryViewModel.OnPopulated +=() =>
{
if (Loaded != null) Loaded();
};
}
查看
public MainHomePageView()
: base(GetNibName("MainHomePageView"), null)
{
this.EnableLandscapeRotation();
}
protected override void ViewJustLoaded()
{
this.ViewModel.Loaded += LoadControls;
}
void LoadControls()
{
//load controls when view model is populated
}
你寫「的ViewModels應該永遠不會有意見的參考」。但事實已經如此。那麼,爲什麼你會使用WeakSomething? – Softlion