private IEnumerable <Style> GetStylesWithInheritance(StyleClass styleClass, Format format)
        {
            List <StyleClass> inheritedClasses = new List <StyleClass>();
            StyleClass        selectedClass    = styleClass;

            while (selectedClass != null)
            {
                inheritedClasses.Add(selectedClass);
                selectedClass = selectedClass.BasedOn;
            }
            List <Style> inheritedStyles = new List <Style>();

            for (int i = inheritedClasses.Count - 1; i >= 0; i--)
            {
                StyleClass   inheritedClass      = inheritedClasses.ElementAt(i);
                List <Style> selectedClassStyles = StyleRepository.GetStyles(inheritedClass.Name, format.Name).ToList();
                foreach (Style style in selectedClassStyles)
                {
                    if (inheritedStyles.Exists(s => s.Key.Equals(style.Key)))
                    {
                        inheritedStyles.RemoveAll(s => s.Key.Equals(style.Key));
                    }
                    inheritedStyles.Add(style);
                }
            }
            return(inheritedStyles.AsEnumerable());
        }
예제 #2
0
 public IEnumerable <Style> GetAll(string formatName, string styleClassName)
 {
     return(StyleRepository.GetStyles(styleClassName, formatName));
 }