public override bool Remove(int serial) { bool changed = false; Item item = GetItem(serial); if (EntityList.ContainsKey(serial)) { changed = base.Remove(serial); } else { IEnumerable <Item> containers = EntityList.Values.Where(i => i.IsContainer); foreach (Item container in containers) { if (container.Container?.GetItem(serial) == null) { continue; } container.Container.Remove(serial); } } if (changed && item != null) { OnCollectionChanged(true, false, new[] { item }); } return(changed); }
private SItem FindNamedSItem(string name) { if (EntityList.ContainsKey(name)) { return(EntityList [name]); } if (TypeList.ContainsKey(name)) { return(TypeList [name]); } return(null); }
//public static void AddText(Stream fs, string value) //{ // byte[] info = new UTF8Encoding(true).GetBytes(value); // fs.Write(info, 0, info.Length); //} /// <summary> /// use for ToCSharpClass in associating select type to its components /// </summary> void AddSelectTypeInfo() { foreach (var pair in TypeList) { if (!(pair.Value is STypeSelect)) { continue; } var sel = pair.Value as STypeSelect; foreach (var item in sel.SelectList) { if (EntityList.ContainsKey(item.Value.Name) && !EntityList [item.Value.Name].Select.Contains(pair.Value)) { EntityList [item.Value.Name].Select.Add(pair.Value); } else if (TypeList.ContainsKey(item.Value.Name) && !TypeList [item.Value.Name].Select.Contains(pair.Value)) { TypeList [item.Value.Name].Select.Add(pair.Value); } } } }