protected virtual void ViewDestroyed(ViewDestroyedEvent data) { if (data.View.DisposeOnDestroy) { var vm = data.View.ViewModelObject; vm.Dispose(); Publish(new ViewModelDestroyedEvent() { ViewModel = vm, }); } }
protected virtual void ViewDestroyed(ViewDestroyedEvent data) { if (data.View.DisposeViewModelOnDestroy) { var vm = data.View.ViewModelObject; if (vm.References == 0) { vm.Dispose(); Publish(new ViewModelDestroyedEvent() { ViewModel = vm, }); } } bool isRemoved = Views.Remove(data.View); #if UNITY_EDITOR if (!isRemoved) { Debug.LogErrorFormat(data.View, "View {0} not exists in list of views, so it was not removed", data.View); } #endif }