//internal void AfterLoad()
        //{
        //    CachedImage.AfterLoad(false);
        //}

        private ImageCache InitFromBuffer(IBufferProvider ibp)
        {
            if (_ImageCache != null)
                return _ImageCache; //check buffer equality

            _ImageCache = new ImageCache(this, ibp);
            return _ImageCache;
        }
        internal override void OnRemove(IImportContext iic)
        {
             if (_ImageCache != null)
            {
                _ImageCache.Dispose();
                _ImageCache = null;
            }

            List<Track> tracks = CrudeTracks.ToList();

            foreach (Track tr in tracks)
            {
                (tr as IObjectStateCycle).SetInternalState(ObjectState.Removed,iic);
            }
        }