private void FinishInitializationAfterConstructionOrDeserialization()
{
var catelTypeInfo = PropertyDataManager.GetCatelTypeInfo(GetType());
foreach (var propertyData in catelTypeInfo.GetCatelProperties())
{
if (propertyData.Value.SetParent)
{
lock (_propertyValuesLock)
{
var propertyValue = GetValueFast<object>(propertyData.Key);
var propertyValueAsModelBase = propertyValue as ModelBase;
var propertyValueAsIEnumerable = propertyValue as IEnumerable;
if (propertyValueAsModelBase != null)
{
propertyValueAsModelBase.SetParent(this);
}
else if (propertyValueAsIEnumerable != null)
{
foreach (var obj in propertyValueAsIEnumerable)
{
var objAsModelBase = obj as ModelBase;
if (objAsModelBase != null)
{
objAsModelBase.SetParent(this);
}
}
}
}
}
}
//SubscribeAllObjectsToNotifyChangedEvents();
}