internal void Add(ReferentialBase item) { var type = item.GetType(); if (!_entities.TryGetValue(type, out TypesIndex types)) { types = new TypesIndex(this); _entities.Add(type, types); } TargetListIndex typeEntity = types.GetByTypename(item.TypeEntity); ModelIndex dic2 = typeEntity.Get(item.TargetName); if (dic2.ContainsKey(item.Name)) { var olditem = dic2[item.Name]; if (olditem is INotifyPropertyChanged n1) { n1.PropertyChanged -= N_PropertyChanged; } dic2.Set(item); //PropagateFileChanged(item); return; } dic2.Set(item); //PropagateFileChanged(item); if (item is INotifyPropertyChanged n2) { n2.PropertyChanged -= N_PropertyChanged; } }
public TargetListIndex GetByTypename(string typename) { if (!_items.TryGetValue(typename, out TargetListIndex result)) { _items.Add(typename, (result = new TargetListIndex(this._parent, typename))); } return(result); }