protected virtual void SetCollection(TCollection <TCollectionItem> Value)
 {
     if (Value != FCollection)
     {
         if (FCollection != null)
         {
             FCollection.Remove(this);
         }
         if (Value != null)
         {
             Value.Add(this);
         }
         FCollection = Value;
     }
 }
        //protected int UpdateCount { get { return FUpdateCount; } }

        public TCollectionItem(TCollection <TCollectionItem> ACollection)
        {
            SetCollection(ACollection);
        }