public void AddModelListener(IModelOwner owner, string value) { lock (modelOwners) { if (!modelOwners.ContainsKey(value)) { modelOwners.Add(value, new List <IModelOwner>()); } if (!modelOwners[value].Contains(owner)) { modelOwners[value].Add(owner); } } }
public void RemoveModelListener(IModelOwner owner, string value) { lock (modelOwners) { if (!modelOwners.ContainsKey(value)) { return; } if (modelOwners[value].Contains(owner)) { modelOwners[value].Remove(owner); } if (modelOwners[value].Count == 0) { modelOwners.Remove(value); } } }