void LoadStyle(XmlElement style) { string name = style.GetAttribute("Name"); Type type = TypeStore.Find(style.GetAttribute("Type")); ControlState state = (ControlState)Enum.Parse(typeof(ControlState), style.GetAttribute("State")); PatternList plist = new PatternList(); List <Location> locations = new List <Location>(); List <Path> paths = new List <Path>(); XMLStyleLoader xl = new XMLStyleLoader(); foreach (XmlNode child in style) { Pattern ptn = null; Path pth = null; Location loc = null; foreach (XmlNode child2 in child) { if (child2.NodeType != XmlNodeType.Element) { continue; } object obj = xl.Load(child2); if (obj is Pattern) { ptn = (Pattern)obj; } if (obj is Location) { loc = (Location)obj; } if (obj is Path) { pth = (Path)obj; } } if (ptn == null) { continue; } ptn.Type = (PatternType)Enum.Parse(typeof(PatternType), child.LocalName); plist.Add(ptn); paths.Add(pth); locations.Add(loc); } styleNames.Add(name); styleTypes.Add(type); styleStates.Add(state); styleOperations.Add(plist); styleLocations.Add(locations); stylePaths.Add(paths); }